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中的deferred对象和extend方法详解
May 08 jQuery
利用jquery去掉时光轴头尾部线条的方法实例
Jun 16 jQuery
jQuery选择器之子元素过滤选择器
Sep 28 jQuery
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
Oct 19 jQuery
jQuery封装animate.css的实例
Jan 04 jQuery
jQuery实现输入框的放大和缩小功能示例
Jul 21 jQuery
jQuery 实现批量提交表格多行数据的方法
Aug 09 jQuery
使用jquery模拟a标签的click事件无法实现跳转的解决
Dec 04 jQuery
jquery实现购物车基本功能
Oct 25 jQuery
jquery获取input输入框中的值
Nov 13 jQuery
jQuery 图片查看器插件 Viewer.js用法简单示例
Apr 04 jQuery
jQuery-App输入框实现实时搜索
Nov 19 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 email邮箱正则
2008/10/08 PHP
php strtotime 函数UNIX时间戳
2009/01/14 PHP
PHP上传文件时自动分配路径的方法
2015/01/09 PHP
php图像处理函数imagecopyresampled用法详解
2016/12/02 PHP
PHP实现的激活用户注册验证邮箱功能示例
2017/06/06 PHP
js 对小数加法精度处理示例说明
2013/12/27 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
2017/05/31 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
js canvas实现二维码和图片合成的海报
2020/11/19 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
js实现3D粒子酷炫动态旋转特效
2020/09/13 Javascript
Python中每次处理一个字符的5种方法
2015/05/21 Python
Python中的super用法详解
2015/05/28 Python
python删除过期文件的方法
2015/05/29 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
Python编程中类与类的关系详解
2019/08/08 Python
Python3.7实现验证码登录方式代码实例
2020/02/14 Python
python解释器安装教程的方法步骤
2020/07/02 Python
python 自动识别并连接串口的实现
2021/01/19 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
英国领先的野生鸟类食品供应商:GardenBird
2018/08/09 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
打架检讨书100字
2014/01/08 职场文书
教师开学感言
2014/02/14 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
学生会生活部工作总结2015
2015/03/31 职场文书
新闻稿格式范文
2015/07/18 职场文书
bose降噪耳机音能消除人声吗
2022/04/19 数码科技