基于jquery的direction图片渐变动画效果

 更新时间:2010年05月24日 15:25:53   作者:  
这个插件的制作用到jquery的animate,fadeIn,fadeTo等动画 透明度之类的知识,对css的控制样式也是很重要的
还有一点就是包括滤镜的使用但是有一点必须要说明的是滤镜在firefox下不能识别看不到效果,
下面就开始我们的代码编写吧
html是比较简单的
代码
复制代码 代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<TITLE>myjquerydirection</TITLE>
<META http-equiv=content-type content="text/html; charset=gb2312">
<link rel="stylesheet" type="text/css" href="css/dirction.css">
<script language=javascript src="js/jquery.js" type="text/javascript"></script>
<script type="text/javascript" src="js/drection.js"></script>
</head>
<body>
<div id=nav>
<ul>
<li><img src="images/02.jpg" text="美景如画的海景|天蓝海蓝" pic="2">
<div>一个海岛</div></li>
<li><img src="images/01.jpg" text="Handy Code|春华秋实" pic="1">
<div>一片麦穗</div></li>
<li><img src="images/03.jpg" text="郁郁葱葱的生命|生生不息的生命" pic="3">
<div>一树绿叶</div></li>
<li><img src="images/04.jpg" text="孤独的一棵老树|等谁呢?" pic="4">
<div>一棵大树</div></li>
<li><img src="images/05.jpg" text="明媚的向日葵花|生生不息的生命" pic="5">
<div>一地葵花</div></li></ul>
<div id=frontTextBack></div>
<div id=frontText></div>
<div id=frontTextSub></div>
<div id=BG></div>
<div id=mask></div>
<div id=back><img height="240" src="images/2.jpg" width="760"</div>
</div>
</body>
</html>

这里有多个div标签 id=frontTextBack的标签是显示通过css滤镜来实现阴影,其他的代码就没有什么好说的了
现在开始我们的css代码的编写了
首先从顶层开始编写
代码
复制代码 代码如下:

body { padding:0;
moz-user-select: none;
margin:0;
}
#nav { background: url("loadsmall.gif") no-repeat scroll 330px 100px #000;
height:240px;
overflow:hidden;
position:relative;
width:760px;
display:block;
}
#nav ul { bottom:0px;
left:3px;
position:absolute;
text-align:left;
z-index:999;
}
#nav ul li { list-style:none;
display:block;
float:left;
height:50px;
width:140px;
font-size:12px;
position:relative;
}
#nav li img{ border:1px solid white;
cursor:pointer;
float:left;
height:35px;
left:10px;
top:5px;
width:52px;
margin-top:10px;
}
#nav li div{ FILTER: alpha(opacity=60);
margin-left:70px;
margin-top:5px;
padding-left:10px;
color:white;
}
#frontTextBack{color:#000;
font-family:Verdana;
font-size:30px;
left:22px;
position:absolute;
width:100%;
top:22px;
}
#frontText { color:#fff;
font-size:30px;
font-weight:900;
left:20px;
position:absolute;
top:20px;
width:100%;
z-index:999;
}
#frontTextSub{color:#fff;
font-size:13px;
left:25px;
position:absolute;
top:60px;
width:100%;
}
#BG { background:none repeat scroll 0 0 #000;
border-top:1px solid #999;
bottom:0;
height:50px;
position:absolute;
text-align:right;
width:100%;
}
#mask { background:repeat scroll 0 0 transparent;
height:100%;
position:absolute;
width:100%;
z-index:990;
}
#back { text-align:center;
}
.gray {FILTER:gray(); } //滤镜设置成灰

接下来就是js的编写了js
代码
首先加载
复制代码 代码如下:

$(function(){
//首先找到需要点击的img
$("li img").click(function(){
//判断一下当前img是否已经被点中
if(this.className.indexOf("active") !=-1)
{
return;
}
//获取数据
var i=$(this).attr("pic");
//获取要显示的文本内容,并以|把text分割成数组
var t=$(this).attr("text").split("|");
//改变文本的淡出,通过控制透明度来改变动画的效果
$("#frontText").fadeOut();
$("#frontTextBack").fadeOut();
$("#frontTextSub").fadeOut();
//处理当前active的img恢复原样
$("li img.active").animate({top:5,width:52,left:10},300)
.removeClass("active")
.fadeTo(200,0.6)
//处理当前的active的img
$(this).animate({top:-5,width:40,height:70,left:1},300)
.addClass("active")
.fadeTo(200,1)
//处理显示的div的大图
$("#back").children().addClass("gray").end()
.fadeIn(500,0.1,function(){
$(this).children("img").attr("src","imgaes/"+i+".jpg").removeClass("gray");
$(this).fadeTo(500,1,function(){
$("#frontText").html(t[0]).fadeIn(200); //更改正文文字
$("#frontTextBack").html(t[0]).fadeIn(200); //阴影文字
$("#frontTextSub").html(t[1]).fadeIn(200)} //副标题
);
});
});
});
//初始化第一张图
var i =0;
show();
function show(){
if (i==$("li img").size()) i = 0
$("li img").eq(i).click();
i++;
//setTimeout(show(),1000);
}

相关文章

最新评论