隨筆-6  評(píng)論-2  文章-0  trackbacks-0
          轉(zhuǎn)載自:http://www.cnblogs.com/cloudgamer/archive/2008/05/16/1200705.html
          自動(dòng)滑移:

          <!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 || []);
            }
          ,
            
          //設(shè)置默認(rèn)屬性
            SetOptions: function(options) {
              
          this.options = {//默認(rèn)值
                  Step:        10,//滑動(dòng)變化率
                  Time:        10,//滑動(dòng)延時(shí)
                  X:            [],//x坐標(biāo)變化
                  Y:            [],//y坐標(biāo)變化
                  Loop:        false,//是否循環(huán)
                  Relative:    true//是否相對(duì)位置
              }
          ;
              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() {
              
          //當(dāng)全部坐標(biāo)指向同一個(gè)位置時(shí)會(huì)進(jìn)入死循環(huán)
              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>
          自動(dòng)滑移:
          <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>
          定點(diǎn)滑移:(鼠標(biāo)點(diǎn)擊)
          <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>
          定線滑移:(鼠標(biāo)拖動(dòng)軌跡)
          <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 閱讀(226) 評(píng)論(0)  編輯  收藏 所屬分類: Javascript

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 讷河市| 双江| 万宁市| 兴宁市| 监利县| 张北县| 定西市| 昌图县| 蕉岭县| 广汉市| 陆良县| 汶川县| 色达县| 华亭县| 秀山| 图们市| 醴陵市| 浦县| 平顶山市| 海门市| 大石桥市| 永登县| 石阡县| 万年县| 黔西| 中牟县| 九江县| 绿春县| 清流县| 柞水县| 寿阳县| 赫章县| 吴忠市| 依安县| 安阳市| 万源市| 客服| 凤山市| 孝义市| 铁岭县| 绥棱县|