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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
  • getstyle
    查看全部
    0 采集 收起 来源:获取样式

    2016-10-23

  • 运动框架实现思路
    查看全部
  • 链式运动 为第一个运动的函数添加一个函数作为参数,在第一个运动结束的时候调用
    查看全部
    0 采集 收起 来源:JS链式动画

    2016-10-21

  • 使用offsetWidth和offsetHeight时考虑边框问题 function getStyle(obj,attr) { if(obj.currentStyle) {return obj.currentStyle[attr]} else {return getComputedStyle(obj,false)[attr];} }
    查看全部
  • //封装获取属性的函数 function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr];//IE }else{ return getComputedStyle(obj,false)[attr];//火狐 } }
    查看全部
  • js通过style只能获取内联样式
    查看全部
    0 采集 收起 来源:获取样式

    2016-10-21

  • function getStyle(obj, attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; } else{ return getComputeStyle(obj,false)[attr]; } }
    查看全部
    0 采集 收起 来源:获取样式

    2016-10-20

  • 【多个物体的宽度变化】 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) } 【bug】如果鼠标移动得够快,会出现3个矩形同时变宽。 原因:虽然每次一上来就clearInterval(timer),但是这个定时器是公用的,所以3个li同时在争着使用定时器 解决方法:给每一个li定义一个timer aLi[i].timer = null; 然后把需要timer的地方全部改成obj.timer
    查看全部
    0 采集 收起 来源:JS多物体动画

    2018-03-22

  • var speed = (iTarget-oDiv.offsetLeft)/10; //如果速度是正的 则向上取整。速度是负的向下取整 speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
    查看全部
    0 采集 收起 来源:JS缓冲动画

    2018-03-22

  • 原因:因为有除法,当offsetLeft值变的越来越小时,最后相除会使speed变成小数,从而offsetLeft与speed相加会有小数,又因显示器的最小像素单位是1px,所以浏览器默认向下取整(变小,即floor),将小数省略,小数省略后,最终的值会变小,从而导致程序无法进入if判断,进入死循环。 这一点可以用console.log(speed)可以验证,speed的log会一直输出,因为程序死循环了。 所以,需要ceil or floor来解决这个问题,让程序进入if的判断,终止循环
    查看全部
    0 采集 收起 来源:JS缓冲动画

    2016-10-19

  • json: var json={a:1,b:2}; for(var i in json){ alert(i);//第一次弹a,第二次弹b; alert(json[i]);//第一次弹1,第二次弹2; }
    查看全部
  • function starMove(iTarget){ clearInterval(timer); //清除计时器 var oDiv = document.getElementById("div1"); timer = setInterval(function(){ var speed = 0; //清除速度 if(oDiv.offsetLife > iTarget){ speed = -10; }else{ speed = 10; } if(oDiv.offsetLeft == iTarget){ clearInterval(timer);//当面板移动到目标位置时结束计时器 }else{ oDiv.style.left = oDiv.offsetLeft+speed+"px"; } },30) }
    查看全部
    0 采集 收起 来源:JS速度动画

    2018-03-22

  • 获取样式的封装函数getStyle()可以解决加边框后,offsetWidth运动时的一些bug
    查看全部
  • 获取样式: function getStyle(obj,attr){ if(obj.currentStyle){//ie return obj.currentStyle[attr]; }else{//ff return getComputedStyle(obj,false)[attr]; } }
    查看全部
    0 采集 收起 来源:获取样式

    2016-10-19

  • 所有浏览器都支持 opacity 属性。 注释:IE8 以及更早的版本支持替代的 filter 属性。例如:filter:Alpha(opacity=50)。
    查看全部
    0 采集 收起 来源:JS透明度动画

    2016-10-18

举报

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

微信扫码,参与3人拼团

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

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