jQuery实现鼠标拖动图片功能


Posted in jQuery onMarch 04, 2021

本例利用jQuery实现一个鼠标托动图片的功能。

首先设一个wrapper,wrapper内的坐标即图片移动的坐标

#wrapper{
      width: 1000px;
      height:1000px;
      position:relative;
    }

设置图片div,这个div即要拖动的div

#div1{
      position: absolute;
      left:0px;
      top:0px;
      width: 300px;
      height: 200px;
      background: url("d:/Pictures/Earth.jpg");
      background-size:contain;
    }

上面设置了wrapper的定位为relative,div1的定位为absolute。

接下来设计拖动的算法:

思路如下:

1.鼠标点下时让div跟随鼠标移动

2.鼠标松开时停止跟随

首先需要一个函数,他会将该div的坐标改变为当前鼠标的位置:

首先需要定义几个变量,保存当前鼠标的坐标以及图片的坐标

var timer;
      var mouseX=0;
      var mouseY=0;
      var pic_width = parseInt($("#div1").css("width")); 
      var pic_height = parseInt($("#div1").css("height"));

那么现在就需要为wrapper添加一个事件监听器,鼠标在wrapper中移动时,修改变量mousex,mousey的值

$("#wrapper").mousemove(function(e){
        mouseX = e.clientX;
        mouseY = e.clientY;
      });

编写follow函数,并用计时器调用它

$("#div1").mousedown(function(){
        timer=setInterval(follow,10);
      });
      $("#div1").mouseup(function(){
        clearInterval(timer);
      });
      var follow = function(){

        $("#div1").css("left",mouseX-pic_width/2);
        $("#div1").css("top",mouseY-pic_height/2);
      };

完整代码如下所示:

<!doctype html>
<html>
  <head>
    <script type = "text/javascript" src = "jquery.js"></script>
    <style type = "text/css">
    #wrapper{
      width: 1000px;
      height:1000px;
      position: relative;
      background: linear-gradient(lightblue,white);
      font-size: 40px;
    }
    #div1{
      position: absolute;
      left:0px;
      top:0px;
      width: 300px;
      height: 200px;
      background: url("d:/Pictures/Earth.jpg");
      background-size:contain;
    }
    </style>
  </head>
  <body>
    <div id = "wrapper">
      Lorem, ipsum dolor sit amet consectetur adipisicing elit. Impedit numquam accusamus explicabo praesentium laudantium et accusantium, ab ipsum, excepturi necessitatibus quos iste ad qui deleniti sed debitis reiciendis quam nisi.
      <div id = "div1">

      </div>
    </div>
    
    
    <script>
      
      var timer;
      var mouseX=0;
      var mouseY=0;
      var pic_width = parseInt($("#div1").css("width")); 
      var pic_height = parseInt($("#div1").css("height")); 

      
      $("#wrapper").mousemove(function(e){
        mouseX = e.clientX;
        mouseY = e.clientY;
      });

      $("#div1").mousedown(function(){
        timer=setInterval(follow,10);
      });
      $("#div1").mouseup(function(){
        clearInterval(timer);
      });
      var follow = function(){

        $("#div1").css("left",mouseX-pic_width/2);
        $("#div1").css("top",mouseY-pic_height/2);
      };
    </script>
  </body>
</html>

最终效果:

jQuery实现鼠标拖动图片功能

到此这篇关于jQuery实现鼠标拖动图片功能的文章就介绍到这了,更多相关jQuery鼠标拖动图片内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

jQuery 相关文章推荐
jquery实现全选、全不选以及单选功能
Mar 23 jQuery
jQuery模拟实现天猫购物车动画效果实例代码
May 25 jQuery
jQuery异步提交表单实例
May 30 jQuery
基于jQuery实现的Ajax 验证用户名唯一性实例代码
Jun 28 jQuery
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
通过jquery toggleClass()属性制作文章段落更改背景颜色
May 21 jQuery
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
jquery操作checkbox的常用方法总结【附测试源码下载】
Jun 10 jQuery
JQuery 实现文件下载的常用方法分析
Oct 29 jQuery
如何使用Jquery动态生成二级选项列表
Feb 06 jQuery
jquery css实现流程进度条
Mar 26 jQuery
ajax jquery实现页面某一个div的刷新效果
Mar 04 #jQuery
jquery实现广告上下滚动效果
Mar 04 #jQuery
html5以及jQuery实现本地图片上传前的预览代码实例讲解
Mar 01 #jQuery
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 04 #jQuery
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 #jQuery
jquery实现点击左右按钮切换图片
Jan 27 #jQuery
jquery实现穿梭框功能
Jan 19 #jQuery
You might like
转PHP手册及PHP编程标准
2006/12/17 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
PHP智能识别收货地址信息实例
2019/01/05 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
thinkphp5框架前后端分离项目实现分页功能的方法分析
2019/10/08 PHP
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
js数组操作学习总结
2013/11/04 Javascript
javascript正则表达式之search()用法实例
2015/01/19 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
基于jquery.page.js实现分页效果
2018/01/01 jQuery
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
LayUI表格批量删除方法
2018/08/15 Javascript
vue element动态渲染、移除表单并添加验证的实现
2019/01/16 Javascript
vue项目,代码提交至码云,iconfont的用法说明
2020/07/30 Javascript
[03:08]Ti4观战指南上
2014/07/07 DOTA
python3使用urllib模块制作网络爬虫
2016/04/08 Python
python处理html转义字符的方法详解
2016/07/01 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
Python爬虫解析网页的4种方式实例及原理解析
2019/12/30 Python
python实现的Iou与Giou代码
2020/01/18 Python
Python调用Windows命令打印文件
2020/02/07 Python
python识别验证码图片实例详解
2020/02/17 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
Pytorch 图像变换函数集合小结
2021/02/01 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
七年级英语教学反思
2014/01/15 职场文书
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
Java Spring 控制反转(IOC)容器详解
2021/10/05 Java/Android
Java 异步任务计算FutureTask
2022/04/28 Java/Android