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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? dragdrop.js

?? grails用戶(hù)使用指南
?? JS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)//           (c) 2005 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)// // See scriptaculous.js for full license./*--------------------------------------------------------------------------*/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((typeof containment == 'object') &&         (containment.constructor == Array)) {        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 affected = [];        if(this.last_active) this.deactivate(this.last_active);    this.drops.each( function(drop) {      if(Droppables.isAffected(point, element, drop))        affected.push(drop);    });            if(affected.length>0) {      drop = Droppables.findDeepestChild(affected);      Position.within(drop.element, point[0], point[1]);      if(drop.onHover)        drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));            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);  },  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) {    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.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);      });  },    _cacheObserverCallbacks: function() {    ['onStart','onEnd','onDrag'].each( function(eventName) {      Draggables[eventName+'Count'] = Draggables.observers.select(        function(o) { return o[eventName]; }      ).length;    });  }}/*--------------------------------------------------------------------------*/var Draggable = Class.create();Draggable.prototype = {  initialize: function(element) {    var options = Object.extend({      handle: false,      starteffect: function(element) {        element._opacity = Element.getOpacity(element);         new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});       },      reverteffect: function(element, top_offset, left_offset) {        var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;        element._revert = new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur});      },      endeffect: function(element) {        var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity});       },      zindex: 1000,      revert: false,      scroll: false,      scrollSensitivity: 20,      scrollSpeed: 15,      snap: false   // false, or xy or [x,y] or function(x,y){ return [x,y] }    }, arguments[1] || {});    this.element = $(element);        if(options.handle && (typeof options.handle == 'string')) {      var h = Element.childrenWithClassName(this.element, options.handle, true);      if(h.length>0) this.handle = h[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);    Element.makePositioned(this.element); // fix IE        this.delta    = this.currentDelta();    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(Event.isLeftClick(event)) {          // abort on form elements, fixes a Firefox issue      var src = Event.element(event);      if(src.tagName && (        src.tagName=='INPUT' ||        src.tagName=='SELECT' ||        src.tagName=='OPTION' ||        src.tagName=='BUTTON' ||        src.tagName=='TEXTAREA')) return;              if(this.element._revert) {        this.element._revert.cancel();        this.element._revert = null;      }            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;        if(this.options.zindex) {      this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);      this.element.style.zIndex = this.options.zindex;    }        if(this.options.ghosting) {      this._clone = this.element.cloneNode(true);      Position.absolutize(this.element);      this.element.parentNode.insertBefore(this._clone, this.element);    }        if(this.options.scroll) {      if (this.options.scroll == window) {        var where = this._getWindowScroll(this.options.scroll);        this.originalScrollLeft = where.left;        this.originalScrollTop = where.top;      } else {        this.originalScrollLeft = this.options.scroll.scrollLeft;        this.originalScrollTop = this.options.scroll.scrollTop;      }    }        Draggables.notify('onStart', this, event);    if(this.options.starteffect) this.options.starteffect(this.element);  },    updateDrag: function(event, pointer) {    if(!this.dragging) this.startDrag(event);    Position.prepare();    Droppables.show(pointer, this.element);    Draggables.notify('onDrag', this, event);    this.draw(pointer);    if(this.options.change) this.options.change(this);        if(this.options.scroll) {      this.stopScrolling();            var p;      if (this.options.scroll == window) {        with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }      } else {        p = Position.page(this.options.scroll);        p[0] += this.options.scroll.scrollLeft;        p[1] += this.options.scroll.scrollTop;        p.push(p[0]+this.options.scroll.offsetWidth);        p.push(p[1]+this.options.scroll.offsetHeight);      }      var speed = [0,0];      if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity);      if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity);      if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity);      if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);      this.startScrolling(speed);    }        // fix AppleWebKit rendering    if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);        Event.stop(event);  },    finishDrag: function(event, success) {    this.dragging = false;    if(this.options.ghosting) {      Position.relativize(this.element);      Element.remove(this._clone);      this._clone = null;    }    if(success) Droppables.fire(event, this.element);    Draggables.notify('onEnd', this, event);    var revert = this.options.revert;    if(revert && typeof revert == 'function') revert = revert(this.element);        var d = this.currentDelta();    if(revert && this.options.reverteffect) {      this.options.reverteffect(this.element,         d[1]-this.delta[1], d[0]-this.delta[0]);    } else {      this.delta = d;    }    if(this.options.zindex)      this.element.style.zIndex = this.originalZ;    if(this.options.endeffect)       this.options.endeffect(this.element);    Draggables.deactivate(this);    Droppables.reset();  },    keyPress: function(event) {    if(event.keyCode!=Event.KEY_ESC) return;    this.finishDrag(event, false);    Event.stop(event);  },    endDrag: function(event) {    if(!this.dragging) return;    this.stopScrolling();    this.finishDrag(event, true);    Event.stop(event);  },    draw: function(point) {    var pos = Position.cumulativeOffset(this.element);    var d = this.currentDelta();    pos[0] -= d[0]; pos[1] -= d[1];        if(this.options.scroll && (this.options.scroll != window)) {      pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;      pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;    }        var p = [0,1].map(function(i){       return (point[i]-pos[i]-this.offset[i])     }.bind(this));        if(this.options.snap) {      if(typeof this.options.snap == 'function') {        p = this.options.snap(p[0],p[1],this);      } else {      if(this.options.snap instanceof Array) {        p = p.map( function(v, i) {          return Math.round(v/this.options.snap[i])*this.options.snap[i] }.bind(this))      } else {        p = p.map( function(v) {          return Math.round(v/this.options.snap)*this.options.snap }.bind(this))      }    }}        var style = this.element.style;    if((!this.options.constraint) || (this.options.constraint=='horizontal'))      style.left = p[0] + "px";    if((!this.options.constraint) || (this.options.constraint=='vertical'))      style.top  = p[1] + "px";    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering  },    stopScrolling: function() {    if(this.scrollInterval) {      clearInterval(this.scrollInterval);      this.scrollInterval = null;      Draggables._lastScrollPointer = null;    }  },    startScrolling: function(speed) {    this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];    this.lastScrolled = new Date();    this.scrollInterval = setInterval(this.scroll.bind(this), 10);  },    scroll: function() {    var current = new Date();    var delta = current - this.lastScrolled;    this.lastScrolled = current;    if(this.options.scroll == window) {      with (this._getWindowScroll(this.options.scroll)) {        if (this.scrollSpeed[0] || this.scrollSpeed[1]) {          var d = delta / 1000;          this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] );

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2019国产精品| 久久综合视频网| 国产精品一区在线观看乱码| 亚洲欧美一区二区在线观看| 91精品在线观看入口| 99久久久国产精品免费蜜臀| 青青青爽久久午夜综合久久午夜| 亚洲欧美一区二区三区极速播放 | 国产白丝精品91爽爽久久 | 亚洲成在线观看| 国产欧美精品一区二区三区四区 | 国产欧美日韩综合| 日韩免费成人网| 在线亚洲一区观看| 成人精品视频.| 国产精品一区二区视频| 青青草国产精品97视觉盛宴 | 日韩中文字幕一区二区三区| 亚洲欧美综合色| 国产亚洲一区字幕| 欧美成人一区二区| 欧美猛男gaygay网站| 色婷婷精品久久二区二区蜜臂av | 天天免费综合色| 亚洲精品视频一区二区| 国产精品天美传媒| 欧美精品一区在线观看| 日韩美女在线视频| 日韩欧美一区中文| 日韩一区二区免费视频| 欧美日本一道本在线视频| 欧美无砖专区一中文字| 色悠久久久久综合欧美99| 成人免费福利片| 成人网在线免费视频| 国产精品1区2区3区| 国产精品亚洲专一区二区三区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美成人精品3d动漫h| 91精品国产福利在线观看| 欧美精品亚洲二区| 51精品久久久久久久蜜臀| 欧美精选在线播放| 欧美一区二区高清| 日韩欧美国产系列| 2020国产成人综合网| 久久久精品免费网站| 国产欧美日韩精品在线| 国产精品久久久久桃色tv| 国产精品免费久久| 自拍偷拍亚洲欧美日韩| 一区二区三区精品| 婷婷亚洲久悠悠色悠在线播放| 亚洲444eee在线观看| 蜜臀久久久久久久| 国产一区二区三区四区五区入口| 国产成人精品网址| 色综合久久久久| 欧美午夜精品理论片a级按摩| 欧美精品一卡二卡| 26uuu精品一区二区三区四区在线| 久久精品人人做人人爽97| 国产精品乱码人人做人人爱| 1000精品久久久久久久久| 亚洲一区在线播放| 另类小说一区二区三区| 高清shemale亚洲人妖| 91麻豆精品在线观看| 欧美日韩免费一区二区三区| 精品久久久久一区| 亚洲色图欧美在线| 日韩精品久久理论片| 国产精品原创巨作av| 一本到高清视频免费精品| 欧美年轻男男videosbes| 久久久久国产精品人| 一区二区三区中文在线| 日本成人中文字幕在线视频| 国产白丝网站精品污在线入口| 在线影视一区二区三区| 精品国产伦一区二区三区观看方式| 国产精品毛片无遮挡高清| 婷婷中文字幕综合| 成人在线综合网| 91精品中文字幕一区二区三区| 久久精品男人天堂av| 亚洲第一在线综合网站| 国产成人精品午夜视频免费 | 制服丝袜中文字幕一区| 国产亚洲va综合人人澡精品 | 欧美激情一区不卡| 亚洲电影一区二区| www.成人网.com| 日韩欧美国产一区在线观看| 亚洲美女屁股眼交| 麻豆91精品视频| 欧洲视频一区二区| 亚洲国产成人自拍| 奇米精品一区二区三区在线观看| 99国产精品久久久| 久久久www成人免费毛片麻豆| 亚洲成人av在线电影| av一区二区三区黑人| 精品国产一区二区亚洲人成毛片 | 国内精品久久久久影院一蜜桃| 日本伦理一区二区| 国产精品免费人成网站| 精品综合久久久久久8888| 欧美日韩日本视频| 亚洲免费观看视频| 成人综合婷婷国产精品久久蜜臀| 欧美成人伊人久久综合网| 亚洲电影第三页| 色狠狠av一区二区三区| 国产精品入口麻豆原神| 国产精品一区二区在线看| 日韩欧美色电影| 免费人成在线不卡| 欧美高清视频在线高清观看mv色露露十八| 一色桃子久久精品亚洲| 国产成人无遮挡在线视频| 欧美mv和日韩mv国产网站| 日本午夜一本久久久综合| 欧美亚一区二区| 亚洲综合清纯丝袜自拍| 91国偷自产一区二区三区成为亚洲经典 | 免费的成人av| 欧美男生操女生| 亚洲成人激情综合网| 欧美午夜在线一二页| 亚洲一区二区成人在线观看| 色呦呦网站一区| 亚洲综合一二三区| 日本福利一区二区| 亚洲综合在线免费观看| 色综合 综合色| 亚洲永久免费视频| 欧美性感一区二区三区| 亚洲国产视频在线| 欧美丰满美乳xxx高潮www| 日韩av电影免费观看高清完整版| 欧美视频一区二区三区四区| 一区二区高清视频在线观看| 色一情一伦一子一伦一区| 一区二区三区蜜桃网| 欧美日韩一区在线观看| 日日夜夜精品免费视频| 7777精品伊人久久久大香线蕉经典版下载 | 欧美三级午夜理伦三级中视频| 一区二区成人在线视频| 欧美日韩久久久久久| 视频在线观看一区| 日韩欧美国产综合在线一区二区三区| 免费成人在线播放| 久久精品一区蜜桃臀影院| 国产成人亚洲综合a∨婷婷| 国产精品丝袜一区| 色综合色综合色综合| 亚洲国产精品尤物yw在线观看| 5858s免费视频成人| 欧美日韩视频在线第一区| 美女久久久精品| 久久久久国产精品厨房| 99re这里只有精品首页| 亚洲午夜精品一区二区三区他趣| 欧美一区二区啪啪| 国产69精品久久久久777| 亚洲色图一区二区三区| 91精品久久久久久久91蜜桃| 国产在线播放一区二区三区| 亚洲视频一区在线观看| 欧美精品久久久久久久多人混战| 国产一区二区电影| 亚洲乱码中文字幕| 日韩一区二区三区av| 99久久婷婷国产综合精品| 日韩国产精品91| 亚洲国产成人一区二区三区| 在线观看视频一区| 国产在线不卡视频| 一区二区三区四区高清精品免费观看| 91精品国产一区二区| 岛国一区二区在线观看| 午夜不卡av免费| 国产片一区二区| 欧美精品1区2区| 99久久伊人久久99| 另类综合日韩欧美亚洲| 伊人色综合久久天天| 久久久www成人免费毛片麻豆 | 色综合久久精品| 精品一二三四区| 亚洲一区二区三区四区五区黄| 久久久亚洲午夜电影| 欧美日韩成人在线| fc2成人免费人成在线观看播放| 日本伊人色综合网| 亚洲欧美日韩在线| 久久精品亚洲精品国产欧美| 91精品国产综合久久婷婷香蕉|