Вход Регистрация
Файл: public_html/js/draggable-0.1.js
Строк: 152
<?php
/**
 * draggable - Class allows to make any element draggable
 * 
 * Written by
 * Egor Khmelev (hmelyoff@gmail.com)
 *
 * Licensed under the MIT (MIT-LICENSE.txt).
 *
 * @author Egor Khmelev
 * @version 0.1.0-BETA ($Id$)
 * 
 **/

(function( $ ){

  function 
Draggable(){
      
this._init.applythisarguments );
  };

    
Draggable.prototype.oninit = function(){
      
    };
    
    
Draggable.prototype.events = function(){
      
    };
    
    
Draggable.prototype.onmousedown = function(){
        
this.ptr.css({ position"absolute" });
    };
    
    
Draggable.prototype.onmousemove = function( evtx){
        
this.ptr.css({ leftxtop});
    };
    
    
Draggable.prototype.onmouseup = function(){
      
    };

    
Draggable.prototype.isDefault = {
        
dragfalse,
        
clickedfalse,
        
toclicktrue,
        
mouseupfalse
    
};

    
Draggable.prototype._init = function(){
        if( 
arguments.length ){
            
this.ptr = $(arguments[0]);
            
this.outer = $(".draggable-outer");

            
this.is = {};
            $.
extendthis.isthis.isDefault );

            var 
_offset this.ptr.offset();
            
this.= {
                
left_offset.left,
                
top_offset.top,
                
widththis.ptr.width(),
                
heightthis.ptr.height()
            };

            
this.oninit.applythisarguments );

            
this._events();
        }
    };
    
    
Draggable.prototype._getPageCoords = function( event ){
      if( 
event.targetTouches && event.targetTouches[0] ){
        return { 
xevent.targetTouches[0].pageXyevent.targetTouches[0].pageY };
      } else
        return { 
xevent.pageXyevent.pageY };
    };
    
    
Draggable.prototype._bindEvent = function( ptreventTypehandler ){
      var 
self this;

      if( 
this.supportTouches_ )
      
ptr.get(0).addEventListenerthis.events_eventType ], handlerfalse );
      
      else
        
ptr.bindthis.events_eventType ], handler );
    };
    
    
Draggable.prototype._events = function(){
        var 
self this;

    
this.supportTouches_ 'ontouchend' in document;
    
this.events_ = {
      
"click"this.supportTouches_ "touchstart" "click",
      
"down"this.supportTouches_ "touchstart" "mousedown",
      
"move"this.supportTouches_ "touchmove" "mousemove",
      
"up"  this.supportTouches_ "touchend" "mouseup"
    
};

    
this._bindEvent( $( document ), "move", function( event ){
            if( 
self.is.drag ){
        
event.stopPropagation();
        
event.preventDefault();
                
self._mousemoveevent );
            }
        });
    
this._bindEvent( $( document ), "down", function( event ){
            if( 
self.is.drag ){
        
event.stopPropagation();
        
event.preventDefault();
            }
        });
    
this._bindEvent( $( document ), "up", function( event ){
            
self._mouseupevent );
        });
        
    
this._bindEventthis.ptr"down", function( event ){
            
self._mousedownevent );
            return 
false;
        });
    
this._bindEventthis.ptr"up", function( event ){
            
self._mouseupevent );
        });
        
        
this.ptr.find("a")
            .
click(function(){
                
self.is.clicked true;

                if( !
self.is.toclick ){
                    
self.is.toclick true;
                    return 
false;
                }
            })
            .
mousedown(function( event ){
                
self._mousedownevent );
                return 
false;
            });

        
this.events();
    };
    
    
Draggable.prototype._mousedown = function( evt ){
        
this.is.drag true;
        
this.is.clicked false;
        
this.is.mouseup false;

        var 
_offset this.ptr.offset();
        var 
coords this._getPageCoordsevt );
        
this.cx coords._offset.left;
        
this.cy coords._offset.top;

        $.
extend(this.d, {
            
left_offset.left,
            
top_offset.top,
            
widththis.ptr.width(),
            
heightthis.ptr.height()
        });

        if( 
this.outer && this.outer.get(0) ){
            
this.outer.css({ heightMath.max(this.outer.height(), $(document.body).height()), overflow"hidden" });
        }

        
this.onmousedownevt );
    };
    
    
Draggable.prototype._mousemove = function( evt ){
        
this.is.toclick false;
        var 
coords this._getPageCoordsevt );
        
this.onmousemoveevtcoords.this.cxcoords.this.cy );
    };
    
    
Draggable.prototype._mouseup = function( evt ){
        var 
oThis this;

        if( 
this.is.drag ){
            
this.is.drag false;

            if( 
this.outer && this.outer.get(0) ){

                if( $.
browser.mozilla ){
                    
this.outer.css({ overflow"hidden" });
                } else {
                    
this.outer.css({ overflow"visible" });
                }

        if( $.
browser.msie && $.browser.version == '6.0' ){
         
this.outer.css({ height"100%" });
        } else {
         
this.outer.css({ height"auto" });
        }  
            }

            
this.onmouseupevt );
        }
    };
    
    
window.Draggable Draggable;

})( 
jQuery );
?>
Онлайн: 1
Реклама