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选择器的原理
Aug 01 jQuery
360提示[高危]使用存在漏洞的JQuery版本的解决方法
Oct 27 jQuery
jQuery代码优化方法总结
Jan 29 jQuery
jQuery UI实现动画效果代码分享
Aug 19 jQuery
jquery树形插件zTree高级使用详解
Aug 16 jQuery
jquery将信息遍历到界面上实例代码
Jan 21 jQuery
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
jquery实现简单拖拽效果
Jul 20 jQuery
jQuery实现日历效果
Sep 11 jQuery
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
jquery实现淡入淡出轮播图效果
Dec 13 jQuery
jQuery实现简单轮播图效果
Dec 27 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的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
php跨域cookie共享使用方法
2014/02/20 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
PHP在线调试执行的实现方法(附demo源码)
2016/04/28 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
JavaScript中的依赖注入详解
2015/03/18 Javascript
NODE.JS跨域问题的完美解决方案
2016/10/20 Javascript
微信小程序 loading(加载中提示框)实例
2016/10/28 Javascript
AngularJs入门教程之环境搭建+创建应用示例
2016/11/01 Javascript
node.js实现登录注册页面
2017/04/08 Javascript
AngularJS获取json数据的方法详解
2017/05/27 Javascript
layui table 参数设置方法
2018/08/14 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
javascript实现时钟动画
2020/12/03 Javascript
[04:19]DOTA2完美大师赛第四天精彩集锦
2017/11/26 DOTA
[53:29]完美世界DOTA2联赛循环赛 DM vs Matador BO2第二场 11.04
2020/11/05 DOTA
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
python3爬取torrent种子链接实例
2020/01/16 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
anaconda升级sklearn版本的实现方法
2021/02/22 Python
CSS3制作酷炫的三维相册效果
2016/07/01 HTML / CSS
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
为中国消费者甄选天下优品:网易严选
2016/08/11 全球购物
超市业务员岗位职责
2013/12/05 职场文书
关于逃课的检讨书
2014/01/23 职场文书
外贸专业求职信
2014/03/09 职场文书
乡村教师党员四风问题对照检查材料思想汇报
2014/10/08 职场文书
撤诉书怎么写
2015/05/19 职场文书
行政二审代理词
2015/05/25 职场文书
谢师宴家长致辞
2015/07/27 职场文书
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技