JS动画之速度动画和透明度变化

一、运动框架实现思路:
1.速度(改变值left、right、width、height、opacity)
2.缓冲运动
3.多物体运动
4.任意值变动
5.链式运动
6.同时运动

二、匀速运动:
1、设置定时器,每隔一段时间更改位置,达到匀速运动
2、设置定时器前需清除定时器,以防多次触发重复生成多个定时器
3、当运动位置达到目标值时,可通过清除定时器停止运动
4、当定义函数多处相同时,可封装为一个函数,用不同参数调用,尽量少传递相同的参数
        window.onload = function(){
            var oDiv = document.getElementById("div1");
            oDiv.onmouseover = function(){
                startMove(0);
            }
            oDiv.onmouseout = function(){
                startMove(-200);
            }
        }
        var timer=null;
        function startMove(iTarget){
            clearInterval(timer);
            var oDiv = document.getElementById("div1");
            timer=setInterval(function(){
                var speed=0;
                if(oDiv.offsetLeft>iTarget){
                    speed=-10;
                }
                else{speed=10;}
                if(oDiv.offsetLeft==iTarget){
                    clearInterval(timer);
                }
                else{
                oDiv.style.left=oDiv.offsetLeft+speed+"px";
                }
            },30)
        }

三、透明动画
// #div1{
//     width:200px;
//     height:200px;
//     background:red;
//     所有主流浏览器(IE,Firefox,Opera,Chrome,Safari)都支持opacity属性
// 注意:IE8和早期版本支持另一种过滤器属性。像:filter:Alpha(opacity=50)
//     filter:alpha(opacity:30);
//     opacity:0.3;
// }
        window.οnlοad=function(){
            var oDiv=document.getElementById("div1");
            oDiv.οnmοuseοver=function(){
                startMove(100);
            }
            oDiv.οnmοuseοut=function(){
                startMove(30);
            }
        }
        var timer=null;
        var alpha=30;
        function startMove(iTarget){
            var oDiv=document.getElementById("div1");
            clearInterval(timer);
            timer=setInterval(function(){
                var speed=0;
                if(alpha>iTarget){
                    speed=-10;
                }
                else{
                    speed=10;
                }
                if(alpha==iTarget){
                    clearInterval(timer);
                }
                else{
                    alpha+=speed;
                    oDiv.style.filter="alpha(opacity:"+alpha+")";
                    oDiv.style.opacity=alpha/100;
                }
            },30)
        }











转载于:https://www.cnblogs.com/jiaoli/p/5875527.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值