为了账号安全,请及时绑定邮箱和手机立即绑定

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
  • function startMove(obj,iTarget){ clearInterval(obj.timer);//1.2+++ obj.timer=setInterval(function(){//1.2+++ var icur=parseInt(getStyle(obj,'height')); var speed=(iTarget-icur)/8; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(icur==iTarget){ clearInterval(obj.timer);//1.2+++ }else{ obj.style['height']=icur+speed+'px'; } },30); } function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; }else{ return getComputedStyle(obj,false)[attr]; } }
    查看全部
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div{ width:200px; height:200px; background:#888888; border:10px solid #000; font-size:12px; color:#fff; } </style> <script> window.onload=function(){ startMove(); } function startMove(){ setInterval(function(){ var oDiv=document.getElementById('div1'); oDiv.style.width=parseInt(getStyle(oDiv,'width'))-1+'px'; oDiv.style.fontSize=parseInt(getStyle(oDiv,'fontSize'))+1+'px'; },30); } /** * 获取样式 * @param {[type]} obj [description] * @param {[type]} attr [description] * @return {[type]} [description] */ function getStyle(obj,attr){ if(obj.currenStyle){//针对IE return obj.currentStyle[attr]; }else{//getComputedStyle 针对fireFox浏览器 return getComputedStyle(obj,false)[attr]; } } </script> </head> <body> <div id="div1" >fontSize</div> </body> </html>
    查看全部
    0 采集 收起 来源:获取样式

    2018-03-22

  • /** * 获取样式 * @param {[type]} obj [description] * @param {[type]} attr [description] * @return {[type]} [description] */ function getStyle(obj,attr){ if(obj.currenStyle){//针对IE return obj.currentStyle[attr]; }else{//getComputedStyle 针对fireFox浏览器 return getComputedStyle(obj,false)[attr]; } }
    查看全部
    0 采集 收起 来源:获取样式

    2015-10-13

  • offsetWidth是包含了元素的边框的高度.
    查看全部
    0 采集 收起 来源:获取样式

    2015-10-13

  • div宽度+border
    查看全部
    0 采集 收起 来源:获取样式

    2015-10-13

  • window.onload=function(){ startMove(); } function startMove(){ setInterval(function(){ var oDiv=document.getElementById('div1'); oDiv.style.width=oDiv.offsetWidth-1+'px'; },30); }
    查看全部
    0 采集 收起 来源:获取样式

    2015-10-13

  • /** * 1.3-2多物体透明度 */ window.onload=function(){ var oDiv=document.getElementsByTagName('div'); for(var i=0;i<oDiv.length;i++){ oDiv[i].timer=null; oDiv[i].alpha=30; oDiv[i].onmouseover=function(){ startMove(this,100); } oDiv[i].onmouseout=function(){ startMove(this,30); } } } function startMove(obj,iTarget){ //防止定时器重复使用 clearInterval(obj.timer); //实例化定时器 obj.timer=setInterval(function(){ var speed=0; if(obj.alpha>iTarget){ speed=-10; }else{ speed=10; } if(obj.alpha==iTarget){ clearInterval(obj.timer); }else{ obj.alpha+=speed; obj.style.filter='alpha(opacity:'+obj.alpha+')'; obj.style.opacity=obj.alpha/100; } }, 30); }
    查看全部
    0 采集 收起 来源:JS多物体动画

    2018-03-22

  • 只要是多物体运动,所有东西都不能共用
    查看全部
    0 采集 收起 来源:JS多物体动画

    2015-10-13

  • <script> /** * 1.3-2多物体透明度 */ window.onload=function(){ var oDiv=document.getElementsByTagName('div'); for(var i=0;i<oDiv.length;i++){ oDiv[i].timer=null; oDiv[i].onmouseover=function(){ startMove(this,100); } oDiv[i].onmouseout=function(){ startMove(this,30); } } } var alpha=30;//1.3 function startMove(obj,iTarget){ //防止定时器重复使用 clearInterval(obj.timer); //实例化定时器 obj.timer=setInterval(function(){ var speed=0; if(alpha>iTarget){ speed=-10; }else{ speed=10; } if(alpha==iTarget){ clearInterval(obj.timer); }else{ alpha+=speed; obj.style.filter='alpha(opacity:'+alpha+')'; obj.style.opacity=alpha/100; } }, 30); } </script>
    查看全部
    0 采集 收起 来源:JS多物体动画

    2018-03-22

  • <script> /** * 1.2鼠标移入移出改变宽度-多对象共用一个定时器会出现问题,所以要保证每个对象都有自己的定时器 */ window.onload=function(){ var aLi=document.getElementsByTagName('li'); for(var i=0;i<aLi.length;i++){ aLi[i].timer=null;//1.2+++ aLi[i].onmouseover=function(){ startMove(this,400); } aLi[i].onmouseout=function(){ startMove(this,200); } } } function startMove(obj,iTarget){ clearInterval(obj.timer);//1.2+++ obj.timer=setInterval(function(){//1.2+++ var speed =(iTarget-obj.offsetWidth)/8; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(obj.offsetWidth==iTarget){ clearInterval(obj.timer);//1.2+++ }else{ obj.style.width=obj.offsetWidth+speed+'px'; } },30); } </script>
    查看全部
    0 采集 收起 来源:JS多物体动画

    2018-03-22

  • 多对象共同使用一个方法时,不能共用定时器,需要给每个对象创建定时器变量.
    查看全部
    0 采集 收起 来源:JS多物体动画

    2015-10-13

  • <script> /** * 1.1鼠标移入移出改变宽度--缺点是鼠标移入然后快速移到另一物体时,之前的物体不能恢复到原来的宽度 */ window.onload=function(){ var aLi=document.getElementsByTagName('li'); for(var i=0;i<aLi.length;i++){ aLi[i].onmouseover=function(){ startMove(this,400); } aLi[i].onmouseout=function(){ startMove(this,200); } } } var timer=null; function startMove(obj,iTarget){ clearInterval(timer); timer=setInterval(function(){ var speed =(iTarget-obj.offsetWidth)/8; speed=speed>0?Math.ceil(speed):Math.floor(speed); if(obj.offsetWidth==iTarget){ clearInterval(timer); }else{ obj.style.width=obj.offsetWidth+speed+'px'; } },30); } </script>
    查看全部
    0 采集 收起 来源:JS多物体动画

    2018-03-22

  • 每次执行定时器之前,记得清楚定时器
    查看全部
    0 采集 收起 来源:JS速度动画

    2015-10-13

  • 获取样式
    查看全部
    0 采集 收起 来源:获取样式

    2015-10-13

  • 运动框架实现思路
    查看全部

举报

0/150
提交
取消
课程须知
1.您至少已经具备JavaSript的知识。2.您已经具备一些开发经验。
老师告诉你能学到什么?
1.使用定时器实现简单动画。2.如何一步步封装库。2.培养编程的思想。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!