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 EasyUI 组件加上清除功能的方法(详解)
Apr 13 jQuery
jQuery插件开发发送短信倒计时功能代码
May 09 jQuery
jQuery:unbind方法的使用详解
Aug 14 jQuery
jquery获取链接地址和跳转详解(推荐)
Aug 15 jQuery
HTML5+JS+JQuery+ECharts实现异步加载问题
Dec 16 jQuery
jQuery niceScroll滚动条错位问题的解决方法
Feb 03 jQuery
jQuery ajax仿Google自动提示SearchSuggess功能示例
Mar 28 jQuery
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
Jun 18 jQuery
jquery 回调操作实例分析【回调成功与回调失败的情况】
Sep 27 jQuery
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
JQuery Ajax如何实现注册检测用户名
Sep 25 jQuery
jQuery实现鼠标拖动图片功能
Mar 04 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实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
php对象在内存中的存在形式分析
2015/02/03 PHP
thinkphp分页实现效果
2016/10/13 PHP
浅析PHP 中move_uploaded_file 上传中文文件名失败
2019/04/17 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
js 使FORM表单的所有元素不可编辑的示例代码
2013/10/17 Javascript
ie浏览器使用js导出网页到excel并打印
2014/03/11 Javascript
js实现DOM走马灯特效的方法
2015/01/21 Javascript
Bootstrap Metronic完全响应式管理模板学习笔记
2016/07/08 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
ztree实现权限横向显示功能
2017/05/20 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
详解如何在vue+element-ui的项目中封装dialog组件
2020/12/11 Vue.js
[12:21]VICI vs TNC (BO3)
2018/06/07 DOTA
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
python对数组进行反转的方法
2015/05/20 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
pytorch 图像中的数据预处理和批标准化实例
2020/01/15 Python
python使用Geany编辑器配置方法
2020/02/21 Python
django-csrf使用和禁用方式
2020/03/13 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
Pytorch之扩充tensor的操作
2021/03/04 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
匡威德国官网:Converse德国
2019/01/26 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
音乐系毕业生自荐信
2013/10/27 职场文书
硕士研究生自我鉴定范文
2013/12/27 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
2014年综治维稳工作总结
2014/11/17 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
初中团支书竞选稿
2015/11/21 职场文书