js实现同一个页面多个渐变效果的方法
本文实例讲述了js实现同一个页面多个渐变效果的方法。分享给大家供大家参考。具体分析如下:
这里可实现5个元素中随便一个,鼠标移上去透明度渐渐增加,鼠标移出,透明度渐渐减小的效果。
要点一:
varspeed=0;
if(target>obj.alpha){
speed=5;
}else{
speed=-5;
}
根据目标值和当时值的对比,来决定是正向还是负向速度。
要点二:
for(i=0;i<runs_li.length;i++){
runs_li[i].timer=null;
runs_li[i].alpha=30;
runs_li[i].onmouseover=function(){
startrun(this,100);
}
runs_li[i].onmouseout=function(){
startrun(this,30);
}
}
给每一个元素加上各自的透明度值,各自的透明度变化分开。
最后,上代码:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>无标题文档</title>
<style>
body,ul,li{margin:0;padding:0;}
#runs{width:300px;margin:10pxauto;}
#runsli{width:80px;height:80px;background:#06c;list-style:none;
float:left;margin:10px;display:inline;
filter:alpha(opacity=30);opacity:0.3;}
</style>
<script>
window.onload=function(){
varruns=document.getElementById("runs");
varruns_li=runs.getElementsByTagName("li");
vari=0;
for(i=0;i<runs_li.length;i++){
runs_li[i].timer=null;
runs_li[i].alpha=30;
runs_li[i].onmouseover=function(){
startrun(this,100);
}
runs_li[i].onmouseout=function(){
startrun(this,30);
}
}
}
functionstartrun(obj,target){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
varspeed=0;
if(target>obj.alpha){
speed=5;
}else{
speed=-5;
}
if(obj.alpha==target){
clearInterval(obj.timer);
}else{
obj.alpha=obj.alpha+speed;
obj.style.filter="alpha(opacity="+obj.alpha+")";
obj.style.opacity=obj.alpha/100;
}
},30)
}
</script>
</head>
<body>
<ulid="runs">
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>
</body>
</html>
希望本文所述对大家的javascript程序设计有所帮助。