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获取div距离窗口和父级dv的距离示例
Oct 10 Javascript
JavaScript中5种调用函数的方法
Mar 12 Javascript
创建你的第一个AngularJS应用的方法
Jun 16 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
jQuery焦点图切换特效代码分享
Sep 15 Javascript
JavaScript获取客户端IP的方法(新方法)
Mar 11 Javascript
JS中多种方式创建对象详解
Mar 22 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
Aug 18 Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
Nov 13 Javascript
使用JavaScript保存文本文件到本地的两种方法
Jan 22 Javascript
分享JS表单验证源码(带错误提示及密码等级)
Jan 05 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+javascript制作带提示的验证码源码分享
2014/05/28 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
PHP isset()与empty()的使用区别详解
2017/02/10 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
JavaScript进阶教程(第四课第一部分)
2007/04/05 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
解决js中window.open弹出的是上次的缓存页面问题
2013/12/29 Javascript
ES6中参数的默认值语法介绍
2017/05/03 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
Angular 4依赖注入学习教程之简介(一)
2017/06/04 Javascript
Cpage.js给组件绑定事件的实现代码
2017/08/31 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
vue通过滚动行为实现从列表到详情,返回列表原位置的方法
2018/08/31 Javascript
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
基于python 字符编码的理解
2017/09/02 Python
使用numba对Python运算加速的方法
2018/10/15 Python
Python基本socket通信控制操作示例
2019/01/30 Python
python opencv 二值化 计算白色像素点的实例
2019/07/03 Python
如何基于Python实现自动扫雷
2020/01/06 Python
纯CSS3制作的简洁蓝白风格的登录模板(非IE效果更好)
2013/08/11 HTML / CSS
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
美国一家著名的儿童鞋制造商:Stride Rite
2017/01/02 全球购物
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
GetYourGuide台湾:预订旅游活动、景点和旅游项目
2019/06/10 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
CSS实现fullpage.js全屏滚动效果的示例代码
2021/03/24 HTML / CSS
《地震中的父与子》教学反思
2014/04/10 职场文书
小小商店教学反思
2014/04/27 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
顶岗实习协议书
2015/01/29 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
MYSQL数据库使用UTF-8中文编码乱码的解决办法
2021/05/26 MySQL