zoukankan      html  css  js  c++  java
  • jQuery拖拽小插件

    基本实现思路是利用了onmousedown,onmouseup,onmousemove三种事件和css中的绝对定位

    插件功能:

    1.设置拖拽热点

    2.设置被拖拽对象

    3.设置拖拽范围

    默认情况下,拖拽热点和被拖拽对象是同一个元素,拖拽范围是文档窗口

    jQuery代码

    (function($){
        $.fn.drag=function(opts){
                var defaults={
                    dragObj:$(this),
                    scope:{
                        left:0,
                        top:0,
                        right:$(document).width(),
                        bottom:$(document).height()
                    }
                }
                
                var config=$.extend(defaults,opts);
                var ifMouseDown=false;
                var offleft;
                var offtop;
                
                function getPosition(element){
                    return element.offset();
                }
                
                function mousedownHandler(event){
                    var x=event.pageX;    
                    var y=event.pageY;    
                    offleft=x-getPosition(config.dragObj).left;
                    offtop=y-getPosition(config.dragObj).top;
                    ifMouseDown=true;
                }
                
                function mousemoveHandler(event){
                    if(ifMouseDown){
                        $(this).css({"cursor":"move"}) ;
                        var x=event.pageX;
                        var y=event.pageY;
                        var left=x-offleft;
                        var top=y-offtop;
                        if( left>config.scope.left&&left+config.dragObj.width()<config.scope.right){
                            config.dragObj.css({"left":left+"px"})
                        }
                        if(top>config.scope.top&&top+config.dragObj.height()<config.scope.bottom){
                            config.dragObj.css({"top":top+"px"})
                        }
                    }
                }
                
                $(this).bind("mousedown",mousedownHandler);
                $(document).bind("mousemove",mousemoveHandler);
                $(document).bind("mouseup",function(){ ifMouseDown=false;});
        }
     })(jQuery);
  • 相关阅读:
    select SCOPE_IDENTITY()用法
    SQL 2005 with(nolock)详解
    .NET4进行COM互操作导出数据到Excel
    Counterfeit Dollar 1013 pku
    Numbers that count 1016 PKU
    对局问题 ——取火柴问题(转)
    (a^b) mod c
    对局问题——放硬币问题(转)
    对局问题 ——取石子问题– 1堆(转)
    Follow My Logic 1048 PKU
  • 原文地址:https://www.cnblogs.com/ckzhou/p/4037612.html
Copyright © 2011-2022 走看看