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插件FusionCharts实现的Marimekko图效果示例【附demo源码】
Mar 24 jQuery
Jquery-data的三种用法
Apr 18 jQuery
Jquery中attr与prop的区别详解
May 27 jQuery
基于jquery实现五星好评
Nov 18 jQuery
jQuery+ajax实现动态添加表格tr td功能示例
Apr 23 jQuery
Angular5中调用第三方库及jQuery的添加的方法
Jun 07 jQuery
jquery实现动态添加附件功能
Oct 23 jQuery
jQuery实现网页拼图游戏
Apr 22 jQuery
jQuery内容过滤选择器与子元素过滤选择器用法实例分析
Feb 20 jQuery
jquery+php后台实现省市区联动功能示例
May 23 jQuery
jquery+ajax实现异步上传文件显示进度条
Aug 17 jQuery
详解jQuery的核心函数和事件处理
Feb 18 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
全国FM电台频率大全 - 4 山西省
2020/03/11 无线电
Zend Guard一些常见问题解答
2008/09/11 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
CentOS安装php v8js教程
2015/02/26 PHP
PHP的swoole扩展安装方法详细教程
2016/05/18 PHP
PHP中header用法小结
2016/05/23 PHP
php 运算符与表达式详细介绍
2016/11/30 PHP
JavaScript中的其他对象
2008/01/16 Javascript
jquery 全局AJAX事件使用代码
2010/11/05 Javascript
JavaScript实现的使用键盘控制人物走动实例
2014/08/27 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
详解基于Vue-cli搭建的项目如何和后台交互
2018/06/29 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
JavaScript如何实现监听键盘输入和鼠标监点击
2020/07/20 Javascript
python3编写C/S网络程序实例教程
2014/08/25 Python
python中MySQLdb模块用法实例
2014/11/10 Python
python中常用检测字符串相关函数汇总
2015/04/15 Python
使用Python装饰器在Django框架下去除冗余代码的教程
2015/04/16 Python
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
python基于itchat实现微信群消息同步机器人
2017/02/27 Python
在Python web中实现验证码图片代码分享
2017/11/09 Python
python利用OpenCV2实现人脸检测
2020/04/16 Python
python中for用来遍历range函数的方法
2018/06/08 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
解决python执行较大excel文件openpyxl慢问题
2020/05/15 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
党员干部公开承诺书范文
2015/04/27 职场文书
致接力运动员加油稿
2015/07/21 职场文书
驾驶员安全责任协议书
2016/03/22 职场文书
表扬稿表扬信的格式及范文
2019/06/24 职场文书
Python线程池与GIL全局锁实现抽奖小案例
2022/04/13 Python
吉利入股戴姆勒后smart“长大了”
2022/04/21 数码科技