旋转木马

   function getStyle(ele,attr) {
       return window.getComputedStyle ? window.getComputedStyle(ele,null)[attr] : ele.currenStyle[attr];
   }
function animate(ele,json,fn) {
 clearInterval(ele.timeId);
ele.timeId=setInterval(function () {
//假设都到达目标值
var flag=true;
//遍历对象中的每个属性
for(var attr in json){
if(attr=="opacity"){
//获取当前元素的属性值
var current=parseInt(getStyle(ele,attr)*100);
//获取目标值
var target=json[attr]*100;
//移动的步数
var step=(target-current)/10;
step= step>0 ? Math.ceil(step):Math.floor(step);
//移动后的值
current+=step;
ele.style[attr]=current/100;
}else if(attr=="zIndex"){
ele.style[attr]=json[attr];
}else {
//获取当前元素的属性值
var current=parseInt(getStyle(ele,attr));
//获取目标值
var target=json[attr];
//移动的步数
var step=(target-current)/10;
step= step>0 ? Math.ceil(step):Math.floor(step);
//移动后的值
current+=step;
ele.style[attr]=current+"px";
}

if(current!=target){
flag=false;
}

}
if(flag){
clearInterval(ele.timeId);
//判断是否传入了这个函数
if(fn){
fn();
}
}
//测试代码
//console.log("目标位置"+target+"当前位置"+current+"每次移动的步数"+step);
},20);

}



    var config = [
        {
            width: 400,
            top: 20,
            left: 50,
            opacity: 0.2,
            zIndex: 2
        },//0
        {
            width: 600,
            top: 70,
            left: 0,
            opacity: 0.8,
            zIndex: 3
        },//1
        {
            width: 800,
            top: 100,
            left: 200,
            opacity: 1,
            zIndex: 4
        },//2
        {
            width: 600,
            top: 70,
            left: 600,
            opacity: 0.8,
            zIndex: 3
        },//3
        {
            width: 400,
            top: 20,
            left: 750,
            opacity: 0.2,
            zIndex: 2
        }//4

    ];
    window.function () {
        var flag=true;//假设动画执行完了
        var list = myTab("slide").getElementsByTagName("li");

        function flower() {
            //图片散开
            for (var i = 0; i < list.length; i++) {
                //设置每个Li的宽,透明度,left,top,zIndex
                animate(list[i], config[i],function () {
                    flag=true;//执行到回调函数,说明动画效果以完成
                });
            }
        }
        flower();
        myTab("slide").onmouseover=function(){
            animate(myTab("arrow"),{"opacity":1});
        }
        myTab("slide").onmouseout=function(){

            animate(myTab("arrow"),{"opacity":0});
        }

        //点击按钮删除第一个元素,并将删除的元素添加到数组中的最后
        myTab("arrLeft").onclick = function () {
            if(flag){
                config.unshift(config.pop());
                flower();
            }

        }
        //点击按钮删除最后一个元素,并将删除的元素添加到数组中的第一个
        myTab("arrRight").onclick = function () {
           if(flag){
               config.push(config.shift());
               flower();
               flag=false;
           }
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值