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中封装函数传递当前元素的方法示例
May 05 jQuery
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
jQuery EasyUI开发技巧总结
Sep 26 jQuery
通过jquery获取上传文件名称、类型和大小的实现代码
Apr 19 jQuery
jQuery length 和 size()区别总结
Apr 26 jQuery
详解jQuery中的easyui
Sep 02 jQuery
jQuery轻量级表单模型验证插件
Oct 15 jQuery
jQuery/JS监听input输入框值变化实例
Oct 17 jQuery
jQuery实现滑动星星评分效果(每日分享)
Nov 13 jQuery
jQuery HTML css()方法与css类实例详解
May 20 jQuery
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
jQuery实现飞机大战小游戏
Jul 05 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
建立动态的WML站点(一)
2006/10/09 PHP
php 把数字转换成汉字的代码
2015/07/21 PHP
javascript 一些用法小结
2009/09/11 Javascript
js下用gb2312编码解码实现方法
2009/12/31 Javascript
jQuery实现table隔行换色和鼠标经过变色的两种方法
2014/06/15 Javascript
有效提高JavaScript执行效率的几点知识
2015/01/31 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
使用js实现的简单拖拽效果
2015/03/18 Javascript
AngularJS内建服务$location及其功能详解
2016/07/01 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
js实现京东轮播图效果
2017/06/30 Javascript
Angularjs中的$apply及优化使用详解
2018/07/02 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
vue实现计算器功能
2020/02/22 Javascript
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
vue实现一个6个输入框的验证码输入组件功能的实例代码
2020/06/29 Javascript
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
python获取mp3文件信息的方法
2015/06/15 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
python+VTK环境搭建及第一个简单程序代码
2017/12/13 Python
Python实现上下班抢个顺风单脚本
2018/02/07 Python
python3实现基于用户的协同过滤
2018/05/31 Python
Python os模块常用方法和属性总结
2020/02/20 Python
Django用户登录与注册系统的实现示例
2020/06/03 Python
python 基于selenium实现鼠标拖拽功能
2020/12/24 Python
阿迪达斯法国官方网站:adidas法国
2018/03/20 全球购物
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
花店创业计划书范文
2014/02/07 职场文书
护理目标管理责任书
2014/07/25 职场文书
公司备用金管理制度
2015/08/04 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android