亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dragdrop.js

?? 使用javascript腳本實現IE的拖拽
?? JS
?? 第 1 頁 / 共 3 頁
字號:
// script.aculo.us dragdrop.js v1.8.1, Thu Jan 03 22:07:12 -0500 2008// Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)//           (c) 2005-2007 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)// // script.aculo.us is freely distributable under the terms of an MIT-style license.// For details, see the script.aculo.us web site: http://script.aculo.us/if(Object.isUndefined(Effect))  throw("dragdrop.js requires including script.aculo.us' effects.js library");var Droppables = {  drops: [],  remove: function(element) {    this.drops = this.drops.reject(function(d) { return d.element==$(element) });  },  add: function(element) {    element = $(element);    var options = Object.extend({      greedy:     true,      hoverclass: null,      tree:       false    }, arguments[1] || { });    // cache containers    if(options.containment) {      options._containers = [];      var containment = options.containment;      if(Object.isArray(containment)) {        containment.each( function(c) { options._containers.push($(c)) });      } else {        options._containers.push($(containment));      }    }        if(options.accept) options.accept = [options.accept].flatten();    Element.makePositioned(element); // fix IE    options.element = element;    this.drops.push(options);  },    findDeepestChild: function(drops) {    deepest = drops[0];          for (i = 1; i < drops.length; ++i)      if (Element.isParent(drops[i].element, deepest.element))        deepest = drops[i];        return deepest;  },  isContained: function(element, drop) {    var containmentNode;    if(drop.tree) {      containmentNode = element.treeNode;     } else {      containmentNode = element.parentNode;    }    return drop._containers.detect(function(c) { return containmentNode == c });  },    isAffected: function(point, element, drop) {    return (      (drop.element!=element) &&      ((!drop._containers) ||        this.isContained(element, drop)) &&      ((!drop.accept) ||        (Element.classNames(element).detect(           function(v) { return drop.accept.include(v) } ) )) &&      Position.within(drop.element, point[0], point[1]) );  },  deactivate: function(drop) {    if(drop.hoverclass)      Element.removeClassName(drop.element, drop.hoverclass);    this.last_active = null;  },  activate: function(drop) {    if(drop.hoverclass)      Element.addClassName(drop.element, drop.hoverclass);    this.last_active = drop;  },  show: function(point, element) {    if(!this.drops.length) return;    var drop, affected = [];        this.drops.each( function(drop) {      if(Droppables.isAffected(point, element, drop))        affected.push(drop);    });            if(affected.length>0)      drop = Droppables.findDeepestChild(affected);    if(this.last_active && this.last_active != drop) this.deactivate(this.last_active);    if (drop) {      Position.within(drop.element, point[0], point[1]);      if(drop.onHover)        drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));            if (drop != this.last_active) Droppables.activate(drop);    }  },  fire: function(event, element) {    if(!this.last_active) return;    Position.prepare();    if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))      if (this.last_active.onDrop) {        this.last_active.onDrop(element, this.last_active.element, event);         return true;       }  },  reset: function() {    if(this.last_active)      this.deactivate(this.last_active);  }}var Draggables = {  drags: [],  observers: [],    register: function(draggable) {    if(this.drags.length == 0) {      this.eventMouseUp   = this.endDrag.bindAsEventListener(this);      this.eventMouseMove = this.updateDrag.bindAsEventListener(this);      this.eventKeypress  = this.keyPress.bindAsEventListener(this);            Event.observe(document, "mouseup", this.eventMouseUp);      Event.observe(document, "mousemove", this.eventMouseMove);      Event.observe(document, "keypress", this.eventKeypress);    }    this.drags.push(draggable);  },    unregister: function(draggable) {    this.drags = this.drags.reject(function(d) { return d==draggable });    if(this.drags.length == 0) {      Event.stopObserving(document, "mouseup", this.eventMouseUp);      Event.stopObserving(document, "mousemove", this.eventMouseMove);      Event.stopObserving(document, "keypress", this.eventKeypress);    }  },    activate: function(draggable) {    if(draggable.options.delay) {       this._timeout = setTimeout(function() {         Draggables._timeout = null;         window.focus();         Draggables.activeDraggable = draggable;       }.bind(this), draggable.options.delay);     } else {      window.focus(); // allows keypress events if window isn't currently focused, fails for Safari      this.activeDraggable = draggable;    }  },    deactivate: function() {    this.activeDraggable = null;  },    updateDrag: function(event) {    if(!this.activeDraggable) return;    var pointer = [Event.pointerX(event), Event.pointerY(event)];    // Mozilla-based browsers fire successive mousemove events with    // the same coordinates, prevent needless redrawing (moz bug?)    if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;    this._lastPointer = pointer;        this.activeDraggable.updateDrag(event, pointer);  },    endDrag: function(event) {    if(this._timeout) {       clearTimeout(this._timeout);       this._timeout = null;     }    if(!this.activeDraggable) return;    this._lastPointer = null;    this.activeDraggable.endDrag(event);    this.activeDraggable = null;  },    keyPress: function(event) {    if(this.activeDraggable)      this.activeDraggable.keyPress(event);  },    addObserver: function(observer) {    this.observers.push(observer);    this._cacheObserverCallbacks();  },    removeObserver: function(element) {  // element instead of observer fixes mem leaks    this.observers = this.observers.reject( function(o) { return o.element==element });    this._cacheObserverCallbacks();  },    notify: function(eventName, draggable, event) {  // 'onStart', 'onEnd', 'onDrag'    if(this[eventName+'Count'] > 0)      this.observers.each( function(o) {        if(o[eventName]) o[eventName](eventName, draggable, event);      });    if(draggable.options[eventName]) draggable.options[eventName](draggable, event);  },    _cacheObserverCallbacks: function() {    ['onStart','onEnd','onDrag'].each( function(eventName) {      Draggables[eventName+'Count'] = Draggables.observers.select(        function(o) { return o[eventName]; }      ).length;    });  }}/*--------------------------------------------------------------------------*/var Draggable = Class.create({  initialize: function(element) {    var defaults = {      handle: false,      reverteffect: function(element, top_offset, left_offset) {        var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;        new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur,          queue: {scope:'_draggable', position:'end'}        });      },      endeffect: function(element) {        var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0;        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,           queue: {scope:'_draggable', position:'end'},          afterFinish: function(){             Draggable._dragging[element] = false           }        });       },      zindex: 1000,      revert: false,      quiet: false,      scroll: false,      scrollSensitivity: 20,      scrollSpeed: 15,      snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }      delay: 0    };        if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))      Object.extend(defaults, {        starteffect: function(element) {          element._opacity = Element.getOpacity(element);          Draggable._dragging[element] = true;          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});         }      });        var options = Object.extend(defaults, arguments[1] || { });    this.element = $(element);        if(options.handle && Object.isString(options.handle))      this.handle = this.element.down('.'+options.handle, 0);        if(!this.handle) this.handle = $(options.handle);    if(!this.handle) this.handle = this.element;        if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {      options.scroll = $(options.scroll);      this._isScrollChild = Element.childOf(this.element, options.scroll);    }    Element.makePositioned(this.element); // fix IE        this.options  = options;    this.dragging = false;       this.eventMouseDown = this.initDrag.bindAsEventListener(this);    Event.observe(this.handle, "mousedown", this.eventMouseDown);        Draggables.register(this);  },    destroy: function() {    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);    Draggables.unregister(this);  },    currentDelta: function() {    return([      parseInt(Element.getStyle(this.element,'left') || '0'),      parseInt(Element.getStyle(this.element,'top') || '0')]);  },    initDrag: function(event) {    if(!Object.isUndefined(Draggable._dragging[this.element]) &&      Draggable._dragging[this.element]) return;    if(Event.isLeftClick(event)) {          // abort on form elements, fixes a Firefox issue      var src = Event.element(event);      if((tag_name = src.tagName.toUpperCase()) && (        tag_name=='INPUT' ||        tag_name=='SELECT' ||        tag_name=='OPTION' ||        tag_name=='BUTTON' ||        tag_name=='TEXTAREA')) return;              var pointer = [Event.pointerX(event), Event.pointerY(event)];      var pos     = Position.cumulativeOffset(this.element);      this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });            Draggables.activate(this);      Event.stop(event);    }  },    startDrag: function(event) {    this.dragging = true;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人自拍网| 久久精品国产久精国产爱| 欧洲视频一区二区| 国产成人av电影免费在线观看| 亚洲一级二级在线| 自拍av一区二区三区| 久久久久久久久久久黄色| 日韩一级欧美一级| 欧美一区二区三区免费在线看 | 亚洲免费在线视频一区 二区| 国产午夜亚洲精品羞羞网站| 久久久久久9999| 日本欧美韩国一区三区| 午夜伊人狠狠久久| 天天色综合成人网| 美女国产一区二区三区| 国产美女在线精品| 国产成人h网站| 欧美va在线播放| wwwwww.欧美系列| 亚洲日穴在线视频| 国产成人综合自拍| 欧美精品一区二区不卡| 国产精品丝袜久久久久久app| 国产精品三级电影| 国产精品中文字幕日韩精品| 色综合久久中文字幕综合网| 欧美日韩一区二区三区免费看| 在线成人免费观看| 2020国产精品| 国产一区二区三区综合| 精品美女在线播放| 极品少妇xxxx偷拍精品少妇| 9i在线看片成人免费| 91黄色免费观看| 欧美精品一区男女天堂| 麻豆成人91精品二区三区| 欧美精品成人一区二区三区四区| 亚洲国产毛片aaaaa无费看| 国产精品99久久久久久似苏梦涵| 26uuu亚洲综合色| 国产一区亚洲一区| 欧美经典一区二区| 国产视频视频一区| 成人午夜视频在线| 日韩午夜激情免费电影| 久久成人精品无人区| 久久久久久久久久久久久夜| 成人午夜精品在线| 亚洲精品乱码久久久久久久久 | 蜜臀久久久久久久| 色乱码一区二区三区88| 亚洲在线中文字幕| 在线不卡一区二区| 国产在线看一区| 欧美一级片在线| 国产精品一线二线三线精华| 18成人在线观看| 国产91精品一区二区麻豆网站| 中文天堂在线一区| 欧美日韩精品一区二区天天拍小说 | 色国产综合视频| 午夜av一区二区| 久久久99久久| 欧美性大战久久久久久久| 国产精品国产三级国产普通话99 | 欧美一区日本一区韩国一区| 免费成人在线播放| 国产精品免费网站在线观看| 欧美在线观看一二区| 奇米综合一区二区三区精品视频| 国产日韩欧美在线一区| 欧美天堂亚洲电影院在线播放| 精品一区二区三区视频在线观看 | 国内欧美视频一区二区| 亚洲精品欧美专区| 2024国产精品视频| 欧美日韩国产区一| 成人在线综合网| 日韩激情在线观看| 欧美一区二区三区色| 成人性生交大合| 免费观看久久久4p| 一区二区在线免费观看| 久久久久久9999| 91麻豆精品国产91久久久更新时间 | 99久久婷婷国产综合精品| 国产精品久久久久aaaa樱花| 在线播放视频一区| 91麻豆.com| 午夜精品福利视频网站| 国产欧美一区二区在线| 在线播放日韩导航| 欧美视频日韩视频| 99精品视频一区二区三区| 久久超碰97人人做人人爱| 香蕉乱码成人久久天堂爱免费| 国产欧美一区二区精品仙草咪 | 亚洲色图制服诱惑| 欧美激情在线一区二区三区| 欧美精品一区二区三区高清aⅴ | 亚洲小说春色综合另类电影| 亚洲欧洲精品天堂一级| 国产一区二区三区综合| 午夜精品久久久久久久蜜桃app| 中文字幕一区二| 国产精品美女一区二区三区| 精品国产一区二区三区不卡| 日韩欧美一区二区在线视频| 亚洲午夜精品在线| 亚洲视频一区在线观看| 国产精品美女久久久久aⅴ国产馆| 亚洲精品一线二线三线无人区| 欧美日韩另类一区| 欧美三级日韩三级| 欧美日韩国产在线观看| 欧美色综合网站| 欧美熟乱第一页| 欧美日韩国产一级| 欧美精品国产精品| 日韩一区二区精品葵司在线| 6080日韩午夜伦伦午夜伦| 91麻豆精品国产综合久久久久久| 91麻豆精品国产| 欧美sm美女调教| 久久久久久亚洲综合影院红桃| 久久久国产精品午夜一区ai换脸| 国产精品午夜免费| 亚洲欧美乱综合| 亚洲成av人片在线| 奇米精品一区二区三区四区| 精品一区二区三区不卡| 国产精品一区二区视频| 风间由美性色一区二区三区| 不卡的电影网站| 国产原创一区二区| 成人精品一区二区三区中文字幕| 色爱区综合激月婷婷| 91精品国产综合久久国产大片| 精品国产电影一区二区| 中国色在线观看另类| 亚洲精品国产成人久久av盗摄 | 国产成人在线看| 91亚洲永久精品| 欧美久久久久久蜜桃| 欧美成人欧美edvon| 中文字幕精品综合| 亚洲图片自拍偷拍| 日韩电影网1区2区| 国产高清精品网站| 在线观看国产日韩| 2020国产成人综合网| 亚洲欧美一区二区三区孕妇| 日本美女一区二区三区视频| 国产mv日韩mv欧美| 91麻豆精品国产91久久久更新时间| 国产拍揄自揄精品视频麻豆| 午夜精品一区二区三区电影天堂 | 黑人精品欧美一区二区蜜桃| 99久久精品国产精品久久| 欧美精品久久久久久久久老牛影院| 久久夜色精品国产噜噜av| 亚洲综合视频在线观看| 国模套图日韩精品一区二区| 日本二三区不卡| 国产亚洲婷婷免费| 午夜精品成人在线视频| 成人小视频免费观看| 91精品国产一区二区三区蜜臀| 亚洲视频一二三区| 国产一区不卡视频| 在线播放国产精品二区一二区四区| 国产精品久久久久aaaa樱花| 激情文学综合网| 欧美日韩情趣电影| 亚洲欧美一区二区三区极速播放| 国产一区二区久久| 欧美一区二区三区的| 亚洲美女少妇撒尿| 国产精品一线二线三线精华| 欧美大片在线观看一区| 日韩制服丝袜先锋影音| 色婷婷久久久亚洲一区二区三区| 欧美国产日本韩| 高清免费成人av| 久久这里只有精品首页| 久久精品999| 日韩一区二区三区免费观看| 一区二区日韩av| 免费高清在线一区| 欧美电影在线免费观看| 亚洲最大色网站| 色婷婷亚洲综合| 亚洲黄色免费网站| 91丨九色丨蝌蚪富婆spa| 国产精品美女久久久久久| 成人av在线影院| 亚洲欧洲成人av每日更新| 99精品国产热久久91蜜凸| 亚洲免费大片在线观看|