• jQuery插件之----缓冲运动


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>jQuery插件</title>
    <script type="text/javascript" src="images/jquery-2.0.3.js"></script>

    <script>

    (function($){
        
        $.fn.moveHc=function(json)
        {
            var i=0;
            
            for(i=0;i<this.length;i++)//重要
            {
                startMove(this[i], json);
            }
            
            function getStyle(obj, attr)
            {
                if(obj.currentStyle)
                {
                    return obj.currentStyle[attr];
                }
                else
                {
                    return getComputedStyle(obj, false)[attr];
                }
            }
            
            function startMove(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(getStyle(obj, attr))*100);
                        }
                        else
                        {
                            iCur=parseInt(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)
            }
            
        
        
        
    }})(jQuery)


    $(function(){
        
          var oDiv=$('div');
          
          
        oDiv.click(function(){
            
        
            oDiv.eq($(this).index()).moveHc({200,height:200,opacity:100})
            
            /*oDiv.eq($(this).index()).moveHc({100,height:100,opacity:100}).siblings().moveHc({50,height:55,opacity:50}) */  //siblings()在插件里不能用。用就出问题
            
            
    /*        oDiv.eq($(this).index()).animate({100,height:100,opacity:1}).siblings().animate({50,height:55,opacity:0.5})
    */        
            
            })
          
          
          
          
        })



    </script>


    <style>

       #zgz{ 50px; opacity:0.5; height:55px; background:#f00; margin:10px; float:left;}



    </style>



    </head>

    <body>

      <div id="zgz"></div>
      <div id="zgz"></div>
      <div id="zgz"></div>
      <div id="zgz"></div>


    </body>
    </html>

  • 相关阅读:
    利用GitHub和Hexo打造免费的个人博客 coder
    Android基础——项目的文件结构(二) coder
    25个Android酷炫开源UI框架 coder
    MarkDown使用教程(In Atom) coder
    Android基础——项目的文件结构(一) coder
    25类Android常用开源框架 coder
    Android Activity启动黑/白屏原因与解决方式 coder
    我的window phone 开发第一步
    Entity Framework 4 In Action 读书笔记
    最近在制作一套ASP.NET控件,已初见雏形
  • 原文地址:https://www.cnblogs.com/Greenzgz/p/4143882.html
Copyright © 2020-2023  润新知