我正在尝试创建一个可调整大小的div,而不使用jQuery的接口库。
第一次调整大小没问题(即mousedown,mousemove和mouseup),但在随后的(mousedown + mousemove)中,浏览器尝试拖动整个resizeBar div而不是正确地调整其父容器的大小。在mouseup上,div然后开始在mousemove上调整“cooldiv”,而无需任何必要的mousedown,直到再次点击鼠标。这些问题在Internet Explorer中不会显示。
var myY = 0;
var mouseDown = false;
var originalHeight = 0;
function resize(e){
if(mouseDown == true){
$("#cooldiv").height(originalHeight+e.pageY-myY);
}
}
$(document).ready(function(){
$().mouseup(function(e){
myY = 0;
mouseDown = false;
originalHeight = 0;
$().unbind("mousemove", resize);
});
$("#resizeBar").mousedown(function(e){
myY = e.pageY;
originalHeight = $("#cooldiv").height();
mouseDown = true;
$().bind("mousemove", resize);
});
});
...
<div id="cooldiv" style="width: 500px; height: 300px; background-color: #cccccc; position: relative;">
<div id="resizeBar" style="height: 10px; width: 500px; background-color: #aaaaaa; position: absolute; bottom: 0;"></div>
</div>
第一次调整大小没问题(即mousedown,mousemove和mouseup),但在随后的(mousedown + mousemove)中,浏览器尝试拖动整个resizeBar div而不是正确地调整其父容器的大小。在mouseup上,div然后开始在mousemove上调整“cooldiv”,而无需任何必要的mousedown,直到再次点击鼠标。这些问题在Internet Explorer中不会显示。