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 相关文章推荐
QRCode.js:基于JQuery的生成二维码JS库的使用
Jun 23 jQuery
jQuery实现frame之间互通的方法
Jun 26 jQuery
基于jQuery实现手风琴菜单、层级菜单、置顶菜单、无缝滚动效果
Jul 20 jQuery
jQueryUI Sortable 应用Demo(分享)
Sep 07 jQuery
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
bootstrap+jquery项目引入文件报错的解决方法
Jan 22 jQuery
jQuery实现获取及设置CSS样式操作详解
Sep 05 jQuery
jQuery层叠选择器用法实例分析
Jun 28 jQuery
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
jquery实现掷骰子小游戏
Oct 24 jQuery
jQuery实现验证用户登录
Dec 10 jQuery
jQuery实现的图片点击放大缩小功能案例
Jan 02 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
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
解决中英文字符串长度问题函数
2007/01/16 PHP
PHP中simplexml_load_string函数使用说明
2011/01/01 PHP
关于php开启错误提示的总结
2019/09/24 PHP
Aptana调试javascript图解教程
2009/11/30 Javascript
JS动态创建Table,Tr,Td并赋值的具体实现
2013/07/05 Javascript
异步动态加载JS并运行(示例代码)
2013/12/13 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
javascript实现去除HTML标签的方法
2016/12/26 Javascript
原生js实现轮播图
2017/02/27 Javascript
利用Node.js了解与测量HTTP所花费的时间详解
2017/09/22 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
2019/10/30 Javascript
JS深入学习之数组对象排序操作示例
2020/05/01 Javascript
nginx部署多个vue项目的方法示例
2020/09/06 Javascript
Python可变参数函数用法实例
2015/07/07 Python
Python实现图片转字符画的示例
2017/08/22 Python
python实现kMeans算法
2017/12/21 Python
Python语言检测模块langid和langdetect的使用实例
2019/02/19 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
python+selenium 点击单选框-radio的实现方法
2019/09/03 Python
浅谈pymysql查询语句中带有in时传递参数的问题
2020/06/05 Python
python一些性能分析的技巧
2020/08/30 Python
Jimmy Choo美国官网:周仰杰鞋子品牌
2018/06/08 全球购物
帕克纽约:PARKER NY
2018/12/09 全球购物
院药学专业个人求职信
2013/09/21 职场文书
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
设计部经理的岗位职责
2013/11/16 职场文书
一份文言文检讨书
2014/09/13 职场文书
教师党员个人自我剖析材料
2014/09/29 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
行政复议决定书
2015/06/24 职场文书
win10下go mod配置方式
2021/04/25 Golang