jquery鼠标拖拽效果分享

//html代码部分
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>  <script src="../js/jquery-1.11.1.js"></script>
</head>
<style>
    body{
        padding: 0;
        margin: 0;
    }
    .w{
    width: 600px;
        height: 600px;
        background-color: red;
        position: absolute;
        left: 0;
        top: 0;
    }
    .a{
        width: 600px;
        height: 50px;
        cursor: move;
        background-color: yellowgreen;
        position: absolute;
        left: 0;
        top:0;
    }
</style>
<body>
<div class="w">
    <div class="a"></div>
</div>
</body></html>

  //需要拖动的部分需加上定位属性

//jquery代码部分
 <script>
            //鼠标拖拽效果
            (function($){
                $.fn.wwp_tz = function(opt){
                    var defaults = {
                    };
                    var options = $.extend({},defaults,opt);
                    this.each(function(){
                        var $this = $(this);
                        var L=0,T=0;
                        $this.mousedown(function(event){
                            $this.data("down","1");
                            var X = event.clientX;     //获取当前鼠标的X轴;
                            var Y = event.clientY;     //获取当前鼠标的Y轴;
                            var offset = $this.offset();
                            var box_x = offset.left;  //获取当前元素的x轴浮动距离;
                            var box_y = offset.top;   //获取当前元素的y轴浮动距离;
                                L = X-box_x;          //当前鼠标到元素之间的距离;
                                T = Y-box_y;
                        }).mousemove(function(event){
                            if($this.data("down") == 1){
                                var X = event.clientX;     //获取当前鼠标的X轴;
                                var Y = event.clientY;     //获取当前鼠标的Y轴;
                                var box_left = X-L;       //鼠标当前位置减去鼠标到元素的位置
                                var box_top = Y-T;
                                if(options.dom == 1){
                                    $this.css({left:box_left+"px",top:box_top+"px"})
                                }else if(options.dom == 2){
                                    $this.parent().css({left:box_left+"px",top:box_top+"px"})
                                }
                            }else{
                                return false;
                            }
                        }).mouseup(function(){     //鼠标抬起时
                            $this.data("down","-1");

                        }).mouseleave(function(){   //光标离开元素时
                            $this.data("down","-1");
                        });
                    })
                }
            })(jQuery);
            //调用
           $(function(){
               $(".a").wwp_tz({
                dom:2     //  1是元素自身拖动,2是含父节点一起拖动
               })
           });
   </script>

  

时间: 2024-10-20 14:33:00

jquery鼠标拖拽效果分享的相关文章

简单的鼠标拖拽效果(原生js实现)

之前在聊天群里看到有人说面试的时候被问到了怎样实现一个拖拽效果,当时看到后在心里默默思考了下,结果发现好像我也写不出来啊.本着遇到一个解决一个的思想,就亲自敲了一个,看到张鑫旭大神写的代码,真的很厉害,多多学习了,(感觉随便搜一个关于前端方面的问题都能看到他的网站,真是太佩服了,写了那么多文章,十分感谢.)好了,接下来就进入正题了.想实现一个效果首先得明白其中的逻辑,知道了实现逻辑后,就可以码代码了.首先我实现的效果是: 鼠标按下后,才可以执行后续效果 鼠标已经按下,然后鼠标移动,需要拖拽的元素

js 鼠标拖拽效果实现

效果: 源码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>速表拖拽效果实现</title> <style> *{ margin: 0; padding: 0; } .toolbar{ height: 30px; text-align: left; padding-left: 20px;

jQuery 鼠标拖拽排序

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>测试的拖拽功能</title> <style type="text/css"> body, div { margin: 0; paading: 0; f

JS实现鼠标拖拽效果以及放大缩小

要求:拖拽的子元素不能走出父元素,大小不能超过父元素,放大/缩小时阻止冒泡事件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style> *{margin: 0;padding: 0;} .box1{border: 10px solid #000;width: 400px;height: 400px;posi

鼠标拖拽效果

1 <div id="div3"> 2 </div> 3 <script type="text/javascript"> 4 5 6 div3.onmousedown= function(e){ 7 var arr =[]; 8 arr[0] =[div3.offsetLeft,div3.offsetTop];//记录第一次点击的值; 9 var x = e.offsetX;//获取元素鼠标点击坐标 10 var y = e.of

JavaScript鼠标拖拽特效及相关问题总结

#div1{width:200px;height:200px;background:red;position:absolute;} #div2{width:200px;height:200px;background:green;position:absolute;left:300px;} <div id="div1">原来的 普通拖拽</div> <div id="div2">继承的 限制范围拖拽</div> wind

一款基于jQuery的支持鼠标拖拽滑动焦点图

记得之前我们分享过一款jQuery全屏广告图片焦点图,图片切换效果还不错.今天我们要分享另外一款jQuery焦点图插件,它的特点是支持鼠标拖拽滑动,所以在移动设备上使用更加方便,你只要用手指滑动屏幕即可切换图片. 在线预览   源码下载 实现的代码. html代码: <div class="main_visual"> <div class="flicking_con"> <a class="on" href=&quo

jquery实战——弹出框拖拽效果

今天主要记录一下弹出框拖拽效果: 一.移动弹出窗口的步骤是:按下鼠标左键——移动鼠标——松开鼠标左键停止移动 二.主要思想: 按下鼠标左键:$('div').mousedown(function(e){}) 移动鼠标,获取鼠标当前坐标值:$(document).mousemove(function(e){}) 松开鼠标左键停止移动:$('div').mouseup(function(e){ $(document).unbind('mousemove');  //即当鼠标左键被释放时解除mouse

jquery实现拖拽的效果

上篇讲的是原生js实现拖拽的效果,本篇是jquery实现拖拽的效果. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="utf-8"/> <title> New Documen