js解决movebox移动问题


Posted in Javascript onMarch 29, 2016

本文为大家分享了js解决movebox移动问题,并且取消图片默认拖动事件的相关操作,供大家参考,具体内容如下

html:

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> 
  <link href="../Content/StyleSheet5.css" rel="stylesheet" /> 
  <script src="../Scripts/JavaScript5.js"></script> 
  <title></title> 
  <meta charset="utf-8" /> 
</head> 
<body> 
  <div id="center"> 
    <div id="black"></div> 
    <div id="movebox"> 
      <img id="moveimg" src="../Images/b.jpg"/> 
    </div> 
    <img id="bigimg" src="../Images/b.jpg" /> 
  </div> 
</body> 
</html>

js:

var movebox; 
window.onload = function () { 
  movebox = document.getElementById("movebox"); 
  movebox.addEventListener("mousedown", function (e) { 
    if (e.button > 0) { 
      fun2(); 
      return false; 
    } 
    e.preventDefault && e.preventDefault(); //明哥:去掉图片拖动响应 狠重要 
    gen.x = e.clientX; 
    gen.y = e.clientY; 
    gen._x = movebox.offsetLeft; 
    gen._y = movebox.offsetTop; 
    gen.dx = gen.x - gen._x; 
    gen.dy = gen.y - gen._y; 
    document.addEventListener("mousemove",fun1,false); 
    document.addEventListener("mouseup", fun2, false); 
  }, false); 
}; 
var fun1 = function (e) { 
  gen.L = e.clientX - gen.dx; 
  gen.T = e.clientY - gen.dy; 
  var timefun = function () { 
    window.getSelection().removeAllRanges(); 
    if (gen.L < 100) 
      gen.L = 100; 
    else if (gen.L > 200) 
      gen.L = 200; 
    if (gen.T < 125) 
      gen.T = 125; 
    else if (gen.T > 175) 
      gen.T = 175; 
    setLT(movebox, gen.L, gen.T); 
  }; 
  setTimeout(timefun, 2); 
}; 
var fun2 = function () { 
  document.removeEventListener("mousemove", fun1, false); 
  document.removeEventListener("mouseuo", fun2, false); 
}; 
var gen = { 
  x: null, 
  y: null, 
  _x: null, 
  _y: null, 
  dx: null, 
  dy: null, 
  L: null, 
  T:null, 
}; 
var setLT = function (dom, L, T) { 
  dom.style.left = L + "px"; 
  dom.style.top = T + "px"; 
};

css:

body { 
  position:absolute; 
  margin:0; 
  padding:0; 
} 
#center{ 
  position:absolute; 
  top:200px; 
  left:300px; 
  width:400px; 
  height:400px; 
  background-color:#808080; 
} 
#black{ 
  position:absolute; 
  width:400px; 
  height:400px; 
  z-index:80; 
  background-color:#000; 
  opacity:0.6; 
} 
#bigimg{ 
  z-index:50; 
  position:absolute; 
  left:100px; 
  top:125px; 
} 
#movebox{ 
  z-index:100; 
  position:absolute; 
  width:100px; 
  height:100px; 
  left:150px; 
  top:150px; 
  overflow:hidden; 
  cursor:move; 
  background-color:#ff6a00; 
} 
#moveimg{ 
  position:absolute; 
  left:-50px; 
  top:-25px; 
}

以上就是本文的全部内容,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jquery弹出关闭遮罩层实例
Aug 06 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
May 14 Javascript
在浏览器中实现图片粘贴的jQuery插件-- pasteimg使用指南
Dec 29 Javascript
jQuery中使用each处理json数据
Apr 23 Javascript
详解JavaScript ES6中的模板字符串
Jul 28 Javascript
jQuery遮罩层实现方法实例详解(附遮罩层插件)
Dec 08 Javascript
基于Javascript实现文件实时加载进度的方法
Oct 12 Javascript
js通过keyCode值判断单击键盘上某个键,然后触发指定的事件方法
Feb 19 Javascript
vue router demo详解
Oct 13 Javascript
Vue项目引发的「过滤器」使用教程
Mar 12 Javascript
详解微信小程序自定义组件的实现及数据交互
Jul 22 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
May 17 Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 #Javascript
分析js闭包引起的事件注册问题
Mar 29 #Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
Mar 29 #Javascript
Angularjs实现多个页面共享数据的方式
Mar 29 #Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
Mar 29 #Javascript
JavaScript面向对象程序设计教程
Mar 29 #Javascript
jQuery实现图片加载完成后改变图片大小的方法
Mar 29 #Javascript
You might like
php随机显示图片的简单示例
2014/02/15 PHP
PHP批量生成静态HTML的简单原理和方法
2014/04/20 PHP
浅谈discuz密码加密的方式
2014/05/22 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
php实现异步将远程链接上内容(图片或内容)写到本地的方法
2016/11/30 PHP
Yii框架创建cronjob定时任务的方法分析
2017/05/23 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
学习YUI.Ext 第六天--关于树TreePanel(Part 2异步获取节点)
2007/03/10 Javascript
Dom 结点创建 基础知识
2011/10/01 Javascript
ie下jquery.getJSON的缓存问题的处理方法
2013/03/29 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
简介JavaScript中toUpperCase()方法的使用
2015/06/06 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
js利用clipboardData实现截屏粘贴功能
2016/10/12 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
关于vue.js v-bind 的一些理解和思考
2017/06/06 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
2018/08/13 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
node中IO以及定时器优先级详解
2019/05/10 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
2020/06/04 Javascript
vue实现日历表格(element-ui)
2020/09/24 Javascript
[43:43]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第三场 11.29
2020/12/02 DOTA
Python MySQLdb模块连接操作mysql数据库实例
2015/04/08 Python
Python使用爬虫抓取美女图片并保存到本地的方法【测试可用】
2018/08/30 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
python操作redis数据库的三种方法
2020/09/10 Python
python中添加模块导入路径的方法
2021/02/03 Python
判断单链表中是否存在环
2012/07/16 面试题
婚庆公司的创业计划书
2014/01/22 职场文书
2014新课程改革心得体会
2014/03/10 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
长城的导游词
2015/01/30 职场文书