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 全局AJAX事件使用代码
Nov 05 Javascript
基于jquery打造的百分比动态色彩条插件
Sep 19 Javascript
jquery禁用右键单击功能屏蔽F5刷新
Mar 17 Javascript
Bootstrap每天必学之栅格系统(布局)
Nov 25 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
JQ中$(window).load和$(document).ready区别与执行顺序
Mar 01 Javascript
如何使用JS在HTML中自定义字符串格式化
Jul 20 Javascript
jackson解析json字符串,首字母大写会自动转为小写的方法
Dec 22 Javascript
webpack 从指定入口文件中提取公共文件的方法
Nov 13 Javascript
vue.js中导出Excel表格的案例分析
Jun 11 Javascript
js实现移动端tab切换时下划线滑动效果
Sep 08 Javascript
js实现文章目录索引导航(table of content)
May 10 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下载远程图片函数 可伪造来路
2013/06/25 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
Javascript学习笔记2 函数
2010/01/11 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
Javascript中封装window.open解决不兼容问题
2014/09/28 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
分享12个实用的jQuery代码片段
2016/03/09 Javascript
jQuery中slidedown与slideup方法用法示例
2016/09/16 Javascript
VUE 更好的 ajax 上传处理 axios.js实现代码
2017/05/10 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
[03:58]2014DOTA2国际邀请赛 龙宝赛后解密DK获胜之道
2014/07/14 DOTA
[01:00:44]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第三局
2016/03/04 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
利用Python生成文件md5校验值函数的方法
2017/01/10 Python
python实现快速排序的示例(二分法思想)
2018/03/12 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
Python flask框架实现浏览器点击自定义跳转页面
2020/06/04 Python
Python中的全局变量如何理解
2020/06/04 Python
如何使用python socket模块实现简单的文件下载
2020/09/04 Python
CK美国官网:Calvin Klein
2016/08/26 全球购物
匡威西班牙官网:Converse西班牙
2019/10/01 全球购物
如何进行Linux分区优化
2016/09/13 面试题
机电一体化大学生求职信
2013/11/08 职场文书
幼儿园母亲节活动方案
2014/03/10 职场文书
办公室班子四风问题对照检查材料
2014/10/04 职场文书
保安辞职信范文
2015/02/28 职场文书
经费申请报告
2015/05/15 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang