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 相关文章推荐
JavaScript Timer实现代码
Feb 17 Javascript
弹出层之1:JQuery.Boxy (一) 使用介绍
Oct 06 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
May 23 Javascript
JavaScript表格常用操作方法汇总
Apr 15 Javascript
分享我的jquery实现下拉菜单心的
Nov 29 Javascript
javascript基于prototype实现类似OOP继承的方法
Dec 16 Javascript
javascript实现保留两位小数的多种方法
Dec 18 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
Nov 21 Javascript
深究AngularJS中ng-drag、ng-drop的用法
Jun 12 Javascript
bootstrap Table实现合并相同行
Jul 19 Javascript
关于JavaScript数组去重的一些理解汇总
Sep 10 Javascript
微信小程序基础教程之echart的使用
Jun 01 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 header()函数使用说明
2008/07/10 PHP
php判断用户是否关注微信公众号
2016/07/22 PHP
详解Yii2.0 rules验证规则集合
2017/03/21 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
JavaScript实现使用Canvas绘制图形的基本教程
2016/10/27 Javascript
详解JavaScript 中getElementsByName在IE中的注意事项
2017/02/21 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
vue之nextTick全面解析
2017/05/17 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
解决vue下载后台传过来的乱码流的问题
2020/12/05 Vue.js
[48:46]完美世界DOTA2联赛PWL S2 SZ vs FTD.C 第二场 11.19
2020/11/19 DOTA
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
解决jupyter运行pyqt代码内核重启的问题
2020/04/16 Python
CSS3制作皮卡丘动画壁纸的示例
2020/11/02 HTML / CSS
css3实现书本翻页效果的示例代码
2021/03/08 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
中国综合网上购物商城:苏宁易购
2016/08/09 全球购物
新加坡最佳婴儿用品店:Mamahood.com.sg
2018/08/26 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
考试作弊检讨书1000字(5篇)
2014/10/19 职场文书
儿园租房协议书范本
2014/12/02 职场文书
刑事附带民事起诉状
2015/05/19 职场文书
离职告别感言
2015/08/04 职场文书
班级管理经验交流材料
2015/11/02 职场文书
《我是什么》教学反思
2016/02/16 职场文书
《惊弓之鸟》教学反思
2016/02/20 职场文书
教你如何用python开发一款数字推盘小游戏
2021/04/14 Python
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
react中useState使用:如何实现在当前表格直接更改数据
2022/08/05 Javascript