JS手风琴特效、运动函数

手风琴效果并且附上刚写的运动函数

<style>
.accordion h5{
    float:left;
    margin:0 2px;
    width:50px;
    height:500px;
    cursor:pointer;
    background:#F0F;
    font:bold 24px Arial, Helvetica, sans-serif;
    text-align:center;
    color:#FFF;
    -webkit-border-radius:25px;
    -moz-border-radius:25px;
    -o-border-radius:25px;
    border-radius:25px;
    -webkit-transition:0.3s ease-in-out;
    -moz-transition:0.3s ease-in-out;
    -o-transition:0.3s ease-in-out;
    -ms-transition:0.3s ease-in-out;
}
.accordion h5:hover,.accordion h5.now{
    background:#FC3;
    -webkit-transform:scale(1.02);
    -moz-transform:scale(1.02);
    -ms-transform:scale(1.02);
    -o-transform:scale(1.02);
}
.ac-silder{width:0px;height:500px;float:left;background:#f00;}
</style>
<div class="accordion" id="accordion">
  <h5>one</h5>
  <div class="ac-silder"></div>
  <h5>two</h5>
  <div class="ac-silder"></div>
  <h5>three</h5>
  <div class="ac-silder"></div>
  <h5>four</h5>
  <div class="ac-silder"></div>
</div>
<script src="http://www.yuetaojie.com/App/Tpl/Home/Default/Public/js/common.js"></script>
<script>
window.onload = function(){
    var oH5 = Y.getTagName("accordion","h5");    
    var oDiv = Y.getTagName("accordion","div");    
    var h5Len = oH5.length;
    for(var i=0;i<h5Len;i++){
        oH5[i].i = i;
        oH5[i].onmouseover = function(){
            Y.addClassName(this,"now");
            for(var j=0;j<h5Len;j++){
                if(this.i==j){
                    Y.startMove(oDiv[j],{width:200,display:"block"});
                }else{
                    Y.startMove(oDiv[j],{width:0,display:"none"});    
                }
            }
        }    
    }
}

Y.getStyle = function(obj, attr){
    if(obj.currentStyle){
        return obj.currentStyle[attr];
    }else{
        return getComputedStyle(obj, false)[attr];
    }
}

Y.startMove = function(obj, json, fn){
    clearInterval(obj.timer);
    obj.timer=setInterval(function (){
        var bStop=true;        //这一次运动就结束了——所有的值都到达了
        for(var attr in json){
        //1.取当前的值
            var iCur=0;
        
            if(attr=='opacity'){
                iCur=parseInt(parseFloat(Y.getStyle(obj, attr))*100);
            }else{
                iCur=parseInt(Y.getStyle(obj, attr));
            }
        
        //2.算速度
            var iSpeed=(json[attr]-iCur)/8;
            iSpeed=iSpeed>0?Math.ceil(iSpeed):Math.floor(iSpeed);
        
        //3.检测停止
            if(iCur!=json[attr]){
                bStop=false;
            }
        
            if(attr=='opacity'){
                obj.style.filter='alpha(opacity:'+(iCur+iSpeed)+')';
                obj.style.opacity=(iCur+iSpeed)/100;
            }else{
                obj.style[attr]=iCur+iSpeed+'px';
            }
        }
        if(bStop){
            clearInterval(obj.timer);
            if(fn){
                fn();
            }
        }
    }, 30);
}

</script>

转载于:https://www.cnblogs.com/starweb/archive/2012/06/09/2542777.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值