利用jquery制作滾動到指定位置觸發(fā)動畫

字號:


    利用CSS3的 animation 動畫特性來完成的,對IE的兼容性不是太好,適用與手機端。
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>sas</title>
    <script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/1.9.1/jquery.min.js"></script>
    <style type="text/css">
    *{ margin:0px; padding:0px;}
    .gs{
    position:relative;
    top:800px; 
    background-color:#099; 
    left:150px; width:80px; 
    }
    .xz{
    animation:roate 2s;
    animation-fill-mode:forwards;
    animation-direction:alternate;
        }
    @keyframes roate{
        from { transform:rotate(0deg);
        width:100px;
      height:100px; }
        to{transform:rotate(360deg);
        width:200px;
      height:200px;
        }}
    .xs{ width:50px; float: left; height:30px; background-color: #F90; position:fixed; left:700px; top:0px;}
    </style>
    </head>
    <body>
    <script type="text/javascript">
    function gdjz(div,cssname,offset){
        var a,b,c,d;
        d=$(div).offset().top;
        a=eval(d + offset);
        b=$(window).scrollTop(); 
        c=$(window).height();
        if(b+c>a){
            $((div)).addClass((cssname));
            }
        }
    $(document).ready(function(e) {
    $(window).scroll(function(){
        gdjz("#dh",'xz',500);
        }
    /*var a,b,c;
    a=$("#dh").offset().top;//元素相對于窗口的距離
    b=$(window).scrollTop(); //監(jiān)控窗口已滾動的距離;
    c=$(document).height();//整個文檔的高度
    d=$(window).height();//瀏覽器窗口的高度*/
    /*if(d+b>a+100){
        $("#dh").addClass("xz");
        }
    */
        );
    });
    </script>
    <div>
    <div id="dh" >觸發(fā)動畫</div>
    </div>
    <div></div>
    </body>
    </html>