DOCTYPE html > html lang ="en" > head > meta charset ="UTF-8" > title > 任意值的运动框架 title > style > div { float : left ; width : 200px ; height : 200px ; margin : 20px ; background-color : yellow ; border : 1px solid black ; font-size : 14px ; filter : alpha(opacity=30) ; /* IE */ opacity : 0.3 ; /* 火狐,chrome */ } style > script > window.onload = function () { // Div变高 var oDiv1 = document.getElementById( ' div1 ' ); oDiv1.onmouseover = function () { startMove( this , ' height ' , 400 ); }; oDiv1.onmouseout = function () { startMove( this , ' height ' , 200 ); }; // Div变宽 var oDiv2 = document.getElementById( ' div2 ' ); oDiv2.onmouseover = function () { startMove( this , ' width ' , 400 ); }; oDiv2.onmouseout = function () { startMove( this , ' width ' , 200 ); }; // 改变文字大小 var oDiv3 = document.getElementById( ' div3 ' ); oDiv3.onmouseover = function () { startMove( this , ' fontSize ' , 30 ); }; oDiv3.onmouseout = function () { startMove( this , ' fontSize ' , 14 ); }; // 修改透明度 var oDiv4 = document.getElementById( ' div4 ' ); oDiv4.onmouseover = function () { startMove( this , ' opacity ' , 100 ); }; oDiv4.onmouseout = function () { startMove( this , ' opacity ' , 30 ); }; }; // 属性值的获取函数 function getStyle(obj, name) { if (obj.currentStyle) { return obj.currentStyle[name]; } else { return getComputedStyle(obj, false )[name]; } } // 运动框架 var timer = null ; function startMove(obj, attr, iTarget) { // obj代表对象,attr代表目标属性,iTarget代表设定的属性目标值 clearInterval(obj.timer); // 每次执行函数之前清除定时器,保证每次只有一个定时器在工作 obj.timer = setInterval( function () { var cur = 0 ; if (attr == ' opacity ' ) { // 透明度属性的获取 cur = Math.round(parseFloat(getStyle(obj, attr)) * 100 ); // Math.round针对IE7出现小数的问题 } else { cur = parseInt(getStyle(obj, attr)); // 非透明度的属性值获取 } var speed = (iTarget - cur) / 6 ; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); // 向上取整(速度为正值)和向下取整(速度为负值) if (cur == iTarget) { clearInterval(obj.timer); // 达到目标值时清除定时器 } else { if (attr == ' opacity ' ) { obj.style.filter = ' alpha(opacity= ' + (cur + speed) + ' ) ' ; // IE浏览器 obj.style.opacity = (cur + speed) / 100 ; // 火狐,chrome } else { obj.style[attr] = cur + speed + ' px ' ; // 非透明度属性值 } } }, 30 ); } script > head > body > div id ="div1" > 变高 div > div id ="div2" > 变宽 div > div id ="div3" > I Love JavaScript! div > div id ="div4" > 修改透明度 div > body > html >
查看更多关于JS运动学习笔记--任意值的运动框架(高/宽度,背景颜色,文本内容,透明度等)-Web学海无涯的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did115796