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

JS动画效果

vivian Web前端工程师
难度初级
时长 2小时 8分
学习人数
综合评分9.60
537人评价 查看评价
9.8 内容实用
9.6 简洁易懂
9.4 逻辑清晰
  • 为什么要新定义一个alpha存储透明度,而不直接用oDiv.style.filter或oDiv.style.opacity与目标判断: style对象只能获取通过HTML标签的style特性定义的样式,对于opacity特性是定义在<style>内嵌标签内的样式,odiv.style.opacity=" "结果为空。
    查看全部
    0 采集 收起 来源:JS透明度动画

    2018-03-22

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

    2017-09-22

  • 不用json的同步运动,本人自己写的,如有错误或者 此方法没有使用json的方法好的原因请大家务必私信告诉我 var heighttimer="height"+"timer"; var opacitytimer="opacity"+"timer"; li1.onmouseover = function() { startMove(this, 'height', 400,heighttimer); startMove(this, 'opacity', 30,opacitytimer); } li1.onmouseout = function() { startMove(this, 'height', 100,heighttimer); startMove(this, 'opacity', 100,opacitytimer); } function startMove(obj, attr, target,attrtimer) { clearInterval(obj[attrtimer]); obj[attrtimer] = setInterval(function() { var icur ; if(attr=='opacity') icur= parseFloat(getStyle(obj, attr))*100; else icur= parseInt(getStyle(obj, attr)); var speed = (target - icur) / 8; speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed); if (target == icur) clearInterval(obj[attrtimer]); else { if(attr=='opacity') obj.style.opacity=(icur+speed)/100; else obj.style[attr] = icur + speed + "px"; } }, 30) }
    查看全部
  • offsetLeft和style.left的区别: offsetLeft返回的是数字,style.left返回的是字符串,除了数字还有‘px’; offsetLeft只读,style.left可写。 这里style.left是随定时器而变动的。
    查看全部
    1 采集 收起 来源:JS多物体动画

    2017-09-10

  • 链式运动即使用回调函数一环扣一环
    查看全部
    0 采集 收起 来源:同时运动

    2017-09-10

  • 1.offsetWidth属性可以返回对象的padding+border+width属性值之和,style.width返回值就是定义的width属性值。 2.offsetWidth属性仅是可读属性,而style.width是可读写的。 3.offsetWidth属性返回值是整数,而style.width的返回值是字符串。 4.style.width仅能返回以style方式定义的内部样式表的width属性值。 clientWidth是对象看到的宽度(含padding,不含border) offsetWidth是指对象自身的宽度(含padding,含border) scrollWidth是对象实际内容的宽度(含padding,含border,含滚动条) JS中 obj.style.attr 只能获取行内样式 要获取非行内样式要通过obj.currentStyle[attr]或者getComputedStyle(obj,false)[attr]方法获取 可以封装为 function getStyle(obj,attr){ //currentStyle针对IE浏览器; if(obj.currentStyle){ return bj.currentStyle[attr]; }else{ //getComputedStyle 针对Firefox浏览器 return getComputedStyle(obj,false)[attr] } } obj.offsetWidth 返回值是数值所以不用parseInt();而obj.style.width获取的是像素值 (当给div增加边框值时,且宽度在内联样式里设置,js中obj.offsetWidth返回值中包括有边框,所以会导致js程序中数值的判断有误。当把宽度设置到行内样式时,上述的现象则没有。)
    查看全部
    1 采集 收起 来源:获取样式

    2017-09-09

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

    2017-09-09

  • 1.速度(改变值left,right,width,height.opacity透明度) 2.缓冲运动 3.多物体运动 4.任意值变化 5.链式运动 6.同时运动
    查看全部
  • 一:如果将var flag=true 放在定时器外,定时器内部函数只能将flag变为false,不能完成链式运动。 二:如果将var flag=true 放在定时器内,假设json参数第一二个分别是width、height,若width已经到达final值,flag仍为true,不会设置为false,就会清除定时器 结论:只有当json内的所有参数都达到final值,才能执行消除定时器的操作。将var flag=true放在定时器内部最开头,在定时器内部设置一个getFlag()的函数,此函数遍历json所有参数是否到达final值,只有所有参数都达到final值,flag才会为true。
    查看全部
  • JS动画实现运动框的思路 1.速度(left right width height opacity)2.缓冲 3.多物体运动4.任意值的变化 5.链式运动6.同时运动
    查看全部
  • 变速运动
    查看全部
    0 采集 收起 来源:JS缓冲动画

    2017-08-22

  • 很不错,学到了好多,最后jQuery一下搞出来,感觉自己都可以写框架了
    查看全部
    0 采集 收起 来源:jQuery动画案例

    2017-08-20

  • 不同浏览器兼容
    查看全部
    0 采集 收起 来源:获取样式

    2017-08-20

  • 如果同时调用多个startMove函数,后面的startMove会清除掉前面的startMove的定时器(因为startMove函数中第一句就是clearInterval)。因此实际只有最后一个startMove被执行了。
    查看全部
    0 采集 收起 来源:同时运动

    2017-08-17

  • <script type="text/javascript"> window.onload=function(){ var oLi=document.getElementById('li1'); oLi.onmousemove=function(){ startMove(this,'width',400,function(){ startMove(this,'height',200,function(){ startMove(this,'opacity',100); }) }) } oLi.onmouseout=function(){ startMove(this,'opacity',30,function(){ startMove(this,'height',100,function(){ startMove(this,'width',200); }) }) } } </script>
    查看全部
    0 采集 收起 来源:JS链式动画

    2018-03-22

举报

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

微信扫码,参与3人拼团

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

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