<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-6  評論-2  文章-0  trackbacks-0
    轉載自:http://www.cnblogs.com/cloudgamer/archive/2008/05/16/1200705.html
    自動滑移:

    <!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=gb2312" />
    <title>滑移效果</title>
    <script type="text/javascript">
    var $ = function (id) {
        
    return "string" == typeof id ? document.getElementById(id) : id;
    }
    ;

    function Event(e){
        
    var oEvent = document.all ? window.event : e;
        
    if (document.all) {
            oEvent.pageX 
    = oEvent.clientX + document.documentElement.scrollLeft;
            oEvent.pageY 
    = oEvent.clientY + document.documentElement.scrollTop;
        }

        
    return oEvent;
    }


    function addEventHandler(oTarget, sEventType, fnHandler) {
        
    if (oTarget.addEventListener) {
            oTarget.addEventListener(sEventType, fnHandler, 
    false);
        }
     else if (oTarget.attachEvent) {
            oTarget.attachEvent(
    "on" + sEventType, fnHandler);
        }
     else {
            oTarget[
    "on" + sEventType] = fnHandler;
        }

    }
    ;

    function removeEventHandler(oTarget, sEventType, fnHandler) {
        
    if (oTarget.removeEventListener) {
            oTarget.removeEventListener(sEventType, fnHandler, 
    false);
        }
     else if (oTarget.detachEvent) {
            oTarget.detachEvent(
    "on" + sEventType, fnHandler);
        }
     else 
            oTarget[
    "on" + sEventType] = null;
        }

    }
    ;

    var Class = {
      create: 
    function() {
        
    return function() {
          
    this.initialize.apply(this, arguments);
        }

      }

    }


    Object.extend 
    = function(destination, source) {
        
    for (var property in source) {
            destination[property] 
    = source[property];
        }

        
    return destination;
    }



    var Slippage = Class.create();
    Slippage.prototype 
    = {
      initialize: 
    function(obj, options) {

        
    this.obj = $(obj);
        
    this._timer =null;
        
    this._xs = this._ys = [];
        
    this.X = parseInt(this.obj.style.left) || 0;
        
    this.Y = parseInt(this.obj.style.top) || 0;
        
        
    this.SetOptions(options);
        
    this.Step = Math.abs(this.options.Step);
        
    this.Time = Math.abs(this.options.Time);
        
    this.Loop = this.options.Loop;
        
    this.Relative = this.options.Relative;
        
        
    this.SetPosition(this.options.X || [], this.options.Y || []);
      }
    ,
      
    //設置默認屬性
      SetOptions: function(options) {
        
    this.options = {//默認值
            Step:        10,//滑動變化率
            Time:        10,//滑動延時
            X:            [],//x坐標變化
            Y:            [],//y坐標變化
            Loop:        false,//是否循環
            Relative:    true//是否相對位置
        }
    ;
        Object.extend(
    this.options, options || {});
      }
    ,
      
    //
      SetPosition: function(arrX, arrY) {
        
    if(arrX.length <= 0 && arrX.length <= 0return false;
        
    else if(arrX.length <= 0) arrX = [0];
        
    else if(arrY.length <= 0) arrY = [0];
        
        
    this._xs = arrX; this._ys = arrY;
        
        
    if(this.Relative){
            
    for(var i in this._xs)if (i == 0this._xs[0+= this.X; } else this._xs[i] += this._xs[i-1]; } }
            
    for(var i in this._ys)if (i == 0this._ys[0+= this.Y; } else this._ys[i] += this._ys[i-1]; } }
        }

        
        
    this.Set();
      }
    ,
      
    //
      Set: function() {
        
    //當全部坐標指向同一個位置時會進入死循環
        if(this._xs.length <= 0 && this._ys.length <= 0return;
        
        
    if(this._xs.length > 0this.X = this._xs.shift();
        
    if(this._ys.length > 0this.Y = this._ys.shift();
        
        
    if(this.Loop && this._xs.length > 0 && this._ys.length > 0this._xs.push(this.X);this._ys.push(this.Y); }
        
        
    //$("aa").innerHTML+=this._ys.length+"=";
        this.Move(this.X, this.Y);
      }
    ,
      
    //
      Move: function(iX, iY) {
        clearTimeout(
    this._timer);

        
    var iLeft = parseInt(this.obj.style.left) || 0, iTop = parseInt(this.obj.style.top) || 0, iLeftStep = this.GetStep(iX, iLeft), iTopStep = this.GetStep(iY, iTop);
        
        
    if (iLeftStep == 0 && iTopStep == 0{
            
    this.Set();
        }
     else {
            
    this.obj.style.left = (iLeft + iLeftStep) + "px"this.obj.style.top = (iTop + iTopStep) + "px";
            
    var oThis = thisthis._timer = setTimeout(function(){ oThis.Move(iX, iY); }this.Time);
        }

      }
    ,
      
    //
      GetStep: function(iTarget, iNow) {
        
    var iStep = (iTarget - iNow) / this.Step;
        
    if (iStep == 0return 0;
        
    if (Math.abs(iStep) < 1return (iStep > 0 ? 1 : -1);
        
    return iStep;
      }

    }
    ;

    window.onload 
    = function(){
        
    new Slippage("idSlippage3"{ X: [200,200,0,-200,-100,-100], Y: [0,0,100,-100,100,-100], Loop: true });
        
        
    var oSlippage = new Slippage("idSlippage");
        $(
    "aa").onclick = function(e)var oEvent = Event(e);oSlippage.Move(oEvent.pageX, oEvent.pageY);}
        
        
    var oSlippage2 = new Slippage("idSlippage2"{ Step: 1, Relative: false }),x=[],y=[];
        $(
    "bb").onmousedown = function(e){ addEventHandler(this"mousemove", Set); }
        $(
    "bb").onmouseout = function(e){ removeEventHandler(this"mousemove", Set); x=y=[];}
        $(
    "bb").onmouseup = function(e){ removeEventHandler(this"mousemove", Set); oSlippage2.SetPosition(x, y);x=y=[];}
        
    function Set(e)var oEvent = Event(e); x.push(oEvent.pageX); y.push(oEvent.pageY); }
    }


    </script>
    </head>
    <body>
    自動滑移:
    <div id="cc" style="height:200px; width:500px; border:1px solid #000000;  position:relative;overflow:hidden;">
      
    <div id="idSlippage3" style="width:10px; height:10px; background:#000000; position:absolute; z-index:99; top:50px; left:50px;"> </div>
    </div>
    定點滑移:(鼠標點擊)
    <div id="aa" style="height:200px; width:500px; border:1px solid #000000; overflow:hidden;">
      
    <div id="idSlippage" style="width:10px; height:10px; background:#000000; position:absolute; z-index:99; top:-50px; left:50px;"> </div>
    </div>
    定線滑移:(鼠標拖動軌跡)
    <div id="bb" style="height:200px; width:500px; border:1px solid #000000; overflow:hidden;">
      
    <div id="idSlippage2" style="width:10px; height:10px; background:#000000; position:absolute; z-index:99; top:-50px; left:50px;"> </div>
    </div>
    </body>
    </html>
    posted on 2008-05-17 01:46 vls 閱讀(221) 評論(0)  編輯  收藏 所屬分類: Javascript

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲精品天堂成人片?V在线播放| 黄视频在线观看免费| 久久久久久久亚洲Av无码| 全部免费毛片免费播放| 99热在线精品免费全部my| 午夜视频在线免费观看| 久久免费国产精品| 色噜噜狠狠色综合免费视频| 亚洲乱码日产精品BD在线观看| 亚洲成a人片77777kkkk| 伊人久久亚洲综合| 亚洲人成色77777在线观看大| 女人18毛片特级一级免费视频 | 亚洲天堂中文字幕在线| 日韩成人免费视频播放| 毛片a级毛片免费观看品善网| 亚洲成人在线免费观看| 久久青草免费91线频观看站街| ww在线观视频免费观看w| 色婷婷亚洲一区二区三区| 亚洲日本一线产区和二线产区对比| 亚洲国产成人精品无码一区二区| 亚洲伦另类中文字幕| 亚洲va久久久噜噜噜久久男同| 国产亚洲人成A在线V网站| 国产综合亚洲专区在线| 久久综合亚洲色HEZYO国产| 亚洲日韩VA无码中文字幕| 亚洲伊人久久综合影院| 亚洲国产精品一区二区三区久久| 免费一级大黄特色大片| 亚洲成人影院在线观看| 国产午夜亚洲精品理论片不卡| 国产精品亚洲玖玖玖在线观看| 亚洲人成电影网站国产精品 | 亚洲成a人片7777| 亚洲成人一级电影| 国内精品久久久久影院亚洲| 亚洲中文字幕一二三四区| 亚洲大尺度无码无码专线一区| 国产亚洲福利一区二区免费看|