JavaScript实现鼠标拖动图片并兼容IE/FF/Chrome等主流浏览器
作者:白露时间:2026-10-27 11:04:40浏览:611
本文介绍如何使用JavaScript实现鼠标拖动图片功能,重点解决IE、Firefox及Chrome等主流浏览器的兼容性问题。通过封装addEventListener与attachEvent方法统一事件绑定,利用clientX/clientY计算相对坐标实现拖拽定位,并处理preventDefault防止默认行为。
JavaScript实现鼠标拖动图片并兼容IE/FF/Chrome等主流浏览器
在实现拖拽功能时,务必调用preventDefault方法来阻止浏览器的默认事件行为,例如防止图片被选中或触发其他默认交互。
具体实现代码如下:
<script language="javascript" type="text/javascript">
var isDrag = false;
function isIE(){
if(navigator.userAgent.indexOf("MSIE")>0){return true;}
else{return false;}
}
function addListener(element,e,fn){
if(isIE()){element.attachEvent("on" + e,fn);}
else{element.addEventListener(e,fn,false);}
}
function drag(e){
var e = e || window.event;
var element = e.srcElement || e.target;
if(e.preventDefault)e.preventDefault();
else e.returnvalue=false;
isDrag = true;
var relLeft = e.clientX - parseInt(element.style.left);
var relTop = e.clientY - parseInt(element.style.top);
element.onmouseup = function(){ isDrag = false; }
document.onmousemove = function(e_move){
var e_move = e_move || window.event;
if(isDrag){
element.style.left=e_move.clientX - relLeft + "px";
element.style.top=e_move.clientY - relTop + "px";
return false;
}
}
}
window.onload = function()
{
var element = document.getElementById("elimg");
var element2 = document.getElementById("eldiv");
addListener(element,"mousedown",drag);
addListener(element2,"mousedown",drag);
}
</script>
<div id="eldiv" style="width:140px;height:100px;background:#EEE;position:absolute;left:117px;top:124px"></div>
<img id="elimg" style="left:609px;top:113px;position:absolute" src="http://www.cnit618.com/template/images/logo.gif" />作者最新文章
AOS.js 动画不触发怎么办?排查 DOM 加载与移动端兼容问题
2026-11-05 17:02:26
sigma.js 怎么实现节点点击、拖拽与悬停提示交互
2026-11-05 15:03:27
Matter.js 与 PixiJS/Three.js 集成:分离物理计算与渲染
2026-11-05 13:43:48
主流JS弹幕库选型指南:Danmaku.js等库的功能与体积对比
2026-11-05 09:28:19
JavaScript点击事件监听与交互效果实例
2026-11-05 09:10:19
