gpt4 book ai didi

javascript - 使用 jQuery 在 IE8 中平移 div

转载 作者:行者123 更新时间:2023-12-02 19:23:09 34 4
gpt4 key购买 nike

我在尝试使用 jQuery mousemove、mouseup 和 mousemove 事件在 IE8 中平移 div 时遇到问题。一旦我按下鼠标按钮,在释放鼠标按钮之前不会检测到鼠标移动,并且要检测鼠标按钮,我必须再次按下鼠标按钮。

这是 JavaScript:

// ********** CLICK AND DRAG MAP PANNING ********** //
var mouseDown = false;
var mouseX = 0;
var mouseY = 0;
var originalLeft = $("#layout").offset().left;
var originalTop = $("#layout").offset().top;

$("#layout").mousedown(function(event){
mouseDown = true;
mouseX = event.pageX;
mouseY = event.pageY;
originalLeft = $("#layout").offset().left;
originalTop = $("#layout").offset().top;
return false;
});

$(document).mouseup(function(){
mouseDown = false;
return false;
});

$(document).mousemove(function(event){
if (mouseDown == true) {
var panLeft = (event.pageX - mouseX);
var panTop = (event.pageY - mouseY);
var left = originalLeft + panLeft;
var top = originalTop + panTop;

// Constrain the map
var container = $("#map");
var map = $("#layout");

if (left >= container.offset().left) {
left = container.offset().left;
} else if (left + map.width() <= container.offset().left + container.width()) {
left = container.offset().left + container.width() - map.width();
}

if (top >= container.offset().top) {
top = container.offset().top;
} else if (top + map.height() <= container.offset().top + container.height()) {
top = container.offset().top + container.height() - map.top();
}

$("#layout").offset({ left: left, top: top });
} else {
return false;
}
});
// ********** ********** ********** //

这是 html:

<div id="map">
<div id="layout">
<img src="images/map.png" alt="map"/>
</div>
</div>

#layout div 中的图像设置为与 div 相同的大小。我认为 IE8 中可能存在问题,它认为我正在尝试拖动图像。不过,不确定是否是这种情况,我考虑过将其设置为背景,但由于 IE 不使用背景大小属性,因此我无法正确调整其大小。如果我缩小图像以使用背景,则放大时图像会变得模糊。

最佳答案

这可能是因为您将 mousedown 绑定(bind)到 #layout,将另外两个绑定(bind)到 document。您可能还想尝试添加:

if ( 'attachEvent' in document ) {
document.attachEvent('ondragstart', function() { return false; });
}

防止在 IE 中拖动

关于javascript - 使用 jQuery 在 IE8 中平移 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12303604/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com