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

JS动画效果

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

    2017-01-18

  • <!-- 使用js实现透明度运动而不采用直接设置css的style.opacity属性来改变透明度,这是因为css的透明度的设置是一步到位,瞬时完成的,而使用js可以实现渐隐特效 --> opacity是不透明度,opacity为0时表示不透明度是0也就是完全透明(效果等同于css的隐藏) filter: alpha(opacity:30); /*IE浏览器专用,opacity属性值为0~100*/ opacity:0.3; /*所有主流浏览器都支持opacity属性。. 注意:IE8和早期版本支持另一种过滤器属性。像:filter:Alpha(opacity=50),而IE8版本之前的opacity属性值是0~1*/ 【没有直接的属性可以改变透明度,需要定义一个alpha】
    查看全部
    0 采集 收起 来源:JS透明度动画

    2018-03-22

  • 运动框架实现思路: 1. 速度 => 改变left、right、width、height、opacity 2. 缓冲运动 3. 多物体运动 4. 任意值变化 5. 链式运动 6. 同时运动
    查看全部
  • function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; }else { return getComputedStyle(obj,false)[attr]; } }
    查看全部
    0 采集 收起 来源:获取样式

    2017-01-16

  • 把speed=speed>0?Math.ceil(speed):Math.floor(speed);改为if格式必须是这样才行:if(speed>0){ var spe=Math.ceil(speed); } else{ var spe=Math.floor(speed); } if(menu.offsetLeft==tangel){ clearInterval(timer); } else{ menu.style.left=menu.offsetLeft+spe+'px'; } },30) } 否则仅仅if(speed>0){speed=Math.ceil(speed)};else{Math.floor(speed)}这样是改不了左右运动离目的地有空隙的bug */
    查看全部
    2 采集 收起 来源:JS缓冲动画

    2018-03-22

  • jQ实现运动
    查看全部
    0 采集 收起 来源:jQuery动画案例

    2017-01-11

  • 动画函数参数:多一个表示要“改变的元素的属性”
    查看全部
  • 正确获取当前元素的宽高
    查看全部
    0 采集 收起 来源:获取样式

    2017-01-11

  • function startMove(obj,json,fn){ clearInterval(obj.timer); obj.timer=setInterval(function(){ var flag=true; //标志所有运动是否到达目标值 for(var attr in json){ var curr=0; //获取当前的值,设置为0下面进行赋值 //判断是否为透明度 if(attr=='opacity'){ curr=Math.round(parseFloat(getStyle(obj,attr))*100); //对透明度处理 }else{ curr=parseInt(getStyle(obj,attr)); //对普通的宽高处理 } //移动速度处理 var speed=0; speed=(json[attr]-curr)/8; //json[attr]为属性值即目标值 speed=speed>0?Math.ceil(speed):Math.floor(speed); //取整数,将速度取整从而达到目标值 //检测停止 if(curr!= json[attr]){ flag=false;//检测为false则继续下面的操作 } if (attr=='opacity') { obj.style.filter='alpha(opacity:'+(curr+speed)+’)’;//IE浏览器 obj.style.opacity=(curr+speed)/100;//firefox浏览器 }else{ obj.style[attr]=curr+speed+'px'; } } if(flag){ //检测为true则继续下面的操作 clearInterval(obj.timer); if(fn){ //检测是否有回调函数,有就执行 fn(); } } },30); } //取样式 function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; //IE取样式 }else{ return getComputedStyle(obj,false)[attr]; } }
    查看全部
  • 运动框架实现思路
    查看全部
  • 一、仿照淘宝转一圈再回来效果,直接在第一次动画结束后设置top到下面。 二 mouseenter 事件在鼠标指针进入 div 元素时触发,唯一的区别是 onmouseenter 事件不支持冒泡。 onmouseover 事件在鼠标指针进入 div 元素时触发 ,在子元素上也会触发(p 和 span)。
    查看全部
    0 采集 收起 来源:JS动画案例

    2017-01-07

  • 链式动画,在startMove(obj,attr,iTarget,fn)再加一个fn参数,并在清除动画之后,加入fn方法:if(fn){fn();}
    查看全部
    0 采集 收起 来源:JS链式动画

    2017-01-07

  • JS中 obj.style.attr 只能获取行内样式 要获取非行内样式要通过obj.currentStyle[attr]或者getComputedStyle(obj,false)[attr]方法获取 obj.offsetWidth 返回值是数值所以不用parseInt();而obj.style.width获取的是像素值
    查看全部
    0 采集 收起 来源:获取样式

    2017-01-07

  • for循环来为每一个TagNameList[i]添加事件 并添加属性来区分各自的定时器(用于取消) 利用参数中的this来指定所选择的当前元素 多物体不要共用一个值,在对象上定义一个单独的属性保持值 存在多项共用一个值,并且这个值会发生改变时,最好单独给赋值,避免出现争用的情况。 // 给每一个li设置一个timer,才不会致使他们去抢timer aLi[i].timer=null;
    查看全部
    0 采集 收起 来源:JS多物体动画

    2017-01-07

  • 定时器写法之一 setInterval(move,5,box); 参数1 :函数名 参数2 :时间 参数3 :传到函数内的参数
    查看全部
    0 采集 收起 来源:JS速度动画

    2017-01-07

举报

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

微信扫码,参与3人拼团

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

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