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);
  • 相关阅读:
    单点登录
    公共的service接口
    springMvc入门--初识springMvc
    mybatis进阶--mapper输入映射和输出映射
    mybatis入门--mapper代理方式开发
    AJAX学习笔记——跨域
    AJAX学习笔记——jQuery中的AJAX
    AJAX学习笔记——JSON
    XAMPP启动Apache服务时启动失败
    Ajax的简单例子——PHP
  • 原文地址:https://www.cnblogs.com/ckzhou/p/4037612.html
Copyright © 2011-2022 走看看