js实现同一页面多个不同运动效果的方法

前端之家收集整理的这篇文章主要介绍了js实现同一页面多个不同运动效果的方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了js实现同一页面多个不同运动效果方法分享给大家供大家参考。具体分析如下:

要点一:

从样式表中根据id和属性名取值。

要点二:

如果设置的是透明度的值,因为有可能会是小数点,所以需要用parseFloat,然后有可能会有小数,用round方法四舍五入取整。

如果设置的非透明度值,用parseInt,可以只取数值部分

其它的注意点,前面几篇都有提到,此处不再赘述。

最后,上代码

无<a href="https://www.jb51.cc/tag/biaoti/" target="_blank" class="keywords">标题</a>文档 @H_404_28@ window.onload = function(){ var runs = document.getElementById("runs"); var runs_li = runs.getElementsByTagName("li"); runs_li[0].onmouSEOver = function(){ startrun(this,"width",300); } runs_li[0].onmouSEOut = function(){ startrun(this,80); } runs_li[1].onmouSEOver = function(){ startrun(this,"height",300); } runs_li[1].onmouSEOut = function(){ startrun(this,80); } runs_li[2].onmouSEOver = function(){ startrun(this,"fontSize",50); } runs_li[2].onmouSEOut = function(){ startrun(this,14); } runs_li[3].onmouSEOver = function(){ startrun(this,"opacity",100); } runs_li[3].onmouSEOut = function(){ startrun(this,30); } } function startrun(obj,attr,target){ clearInterval(obj.timer); obj.timer = setInterval(function(){ var cur = 0; if(attr == "opacity"){ cur = Math.round(parseFloat(getstyle(obj,attr))*100); }else{ cur = parseInt(getstyle(obj,attr)); } var speed = (target - cur)/8; speed = speed>0?Math.ceil(speed):Math.floor(speed);

if(cur == target){
clearInterval(obj.timer);
}else{
if(attr == "opacity"){
obj.style.filter='alpha(opacity='+(cur+speed)+')';
obj.style.opacity=(cur+speed)/100;
}else{
obj.style[attr] = cur+speed+"px";
}
}
},30);
}
function getstyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];
}else{
return getComputedStyle(obj,false)[name];
}
}

希望本文所述对大家的javascript程序设计有所帮助。

原文链接:https://www.f2er.com/js/54870.html

猜你在找的JavaScript相关文章