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自定义图片上传插件实例代码
Apr 04 jQuery
基于Jquery Ajax type的4种类型(详解)
Aug 02 jQuery
jQuery 实时保存页面动态添加的数据的示例
Aug 14 jQuery
jquery tmpl模板(实例讲解)
Sep 02 jQuery
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
jQuery替换节点元素的操作方法
Mar 18 jQuery
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
JS 遍历 json 和 JQuery 遍历json操作完整示例
Nov 11 jQuery
jquery实现轮播图特效
Apr 12 jQuery
jQuery实现日历效果
Sep 11 jQuery
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
jQuery是用来干什么的 jquery其实就是一个js框架
Feb 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
Laravel 中获取上一篇和下一篇数据
2015/07/27 PHP
实现PHP框架系列文章(6)mysql数据库方法
2016/03/04 PHP
基于Codeigniter框架实现的student信息系统站点动态发布功能详解
2017/03/23 PHP
使用EXT实现无刷新动态调用股票信息
2008/11/01 Javascript
WordPress 照片lightbox效果的运用几点
2009/06/22 Javascript
IE iframe的onload方法分析小结
2010/01/07 Javascript
Js 随机数产生6位数字
2010/05/13 Javascript
JS trim去空格的最佳实践
2011/10/30 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
template.js前端模板引擎使用详解
2017/10/10 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
layui数据表格 table.render 报错的解决方法
2019/09/29 Javascript
JavaScript数值类型知识汇总
2019/11/17 Javascript
js+cavans实现图片滑块验证
2020/09/29 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
python中元类用法实例
2014/10/10 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
Linux RedHat下安装Python2.7开发环境
2017/05/20 Python
使用python 3实现发送邮件功能
2018/06/15 Python
Python3+Appium实现多台移动设备操作的方法
2019/07/05 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
python实现图片中文字分割效果
2019/07/22 Python
Python图片的横坐标汉字实例
2019/12/04 Python
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
巴黎一票通:The Paris Pass
2018/02/10 全球购物
宿舍打麻将检讨书
2014/01/24 职场文书
巡警年度自我鉴定
2014/02/21 职场文书
雷锋的故事观后感
2015/06/10 职场文书
总经理聘用协议书
2015/09/21 职场文书