时间:2021-05-28
封装好的运动框架Move(obj,attr,iTarget),可直接调用:
可用于设置width、border、fontSize、marginLeft、opacity等许多常见属性值的变速变化,实现各种有趣效果。
兼容IE和FF。
复制代码 代码如下:
/****************
*
* IE-BUG:
* 在IE中,设置opacity属性时,元素样式中需要设置opacity属性,才能读取到opacity值。
*
* obj:元素对象。 attr:用引号包围的属性名。 iTarget:属性目标值。
*
*****************/
function Move(obj,attr,iTarget){
clearInterval(obj.timer);//关闭前一个定时器,解决对同个对象同时调用多个Move()时,定时器叠加问题。使用obj.timer给每个调用Move()的对象赋予各自的定时器,防止多个对象同时调用Move()时,同用一个定时器,而导致相关干扰问题。
obj.timer=setInterval(function(){
var cur=0;//创建一个变量,用于存储 attr属性每时每刻的值
if(attr=="opacity"){
//针对在FF中opacity属性值为浮点数值问题,将属性值 四舍五入、转换成浮点型。乘以100,使opacity属性值与IE统一为百分数
cur=Math.round(parseFloat(getStyle(obj,attr))*100);
}else{
cur=parseInt(getStyle(obj,attr));//将除opacity外的属性(width/fontSize/MarginLeft等)的初始值 转换为整型
}
var speed=(iTarget-cur)/10;//创建 递减的速度speed变量。实现属性值的变速改变
speed=speed>0?Math.ceil(speed):Math.floor(speed);//取整,解决浏览器忽略小于1px的数值 导致运动结束时,离目标值Itarget少几个像素的问题
if(iTarget==cur){//当目标值等于目标值时,结束定时器
clearInterval(obj.timer);
}else{
cur+=speed;//当前值cur 加上 递减的速度值speed
if(attr=="opacity"){
// 分别对IE和FF设置opacity属性值
obj.style.filter="alpha(opacity:"+cur+")"; //for IE
obj.style.opacity=cur/100; //for FF
}else{
obj.style[attr]=cur+"px"; //给指定属性attr 添加值cur+speed
}
}
},30);
}
//getStyle()函数 用于兼容IE和FF:获取 对象的 非行间样式中的属性的值。 obj:元素对象。 name:属性名。
function getStyle(obj,name){
if(obj.currentStyle){
return obj.currentStyle[name];//for IE
}else{
return getComputedStyle(obj,false)[name];//for FF
}
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
javascript缓冲运动框架的实现框架的使用,大大的提高了我们的编码的效率,下面分享一个缓冲运动框架。实例代码:/***Createdbywangon201
本文实例讲述了javascript运动框架用法。分享给大家供大家参考,具体如下:该运动框架可以实现多物体任意值运动运行效果截图如下:例子:运动框架#div1{w
jQuery是一款流行已久的Javascript框架,确实很好用。今天我给大家介绍jquery下拉菜单的实现代码,具体代码如下所述:*{padding:0;ma
效果:思路:利用多功能浮动运动框架实现微博效果,首先,将textarea中的属性添加到新创建的li里面然后,再将li添加到ul里面,再利用浮动运动框架将数据动态
用page.ClientScript.RegisterStartupScript方式实现代码为:复制代码代码如下://////弹出JavaScript小