Javascript 附「;“dragstart”;事件到";“鼠标”;获得可拖动的经验
正在寻找在“mouseup”事件后拖动元素的解决方案 正如您所知,当它接收到“mousedown”和“mousemove”事件时,就会发生拖动 如何通过“mouseup”事件实现拖动?(何时实现单击)Javascript 附「;“dragstart”;事件到";“鼠标”;获得可拖动的经验,javascript,jquery,drag-and-drop,draggable,drag,Javascript,Jquery,Drag And Drop,Draggable,Drag,正在寻找在“mouseup”事件后拖动元素的解决方案 正如您所知,当它接收到“mousedown”和“mousemove”事件时,就会发生拖动 如何通过“mouseup”事件实现拖动?(何时实现单击) 您可以始终使用$('.box')。on('click',函数(e){方法……这可能会成功,但请记住,您必须添加另一个on click或doubleclick来禁用,而且,这是一种非常奇怪的行为 我的意思的示例解释 // Implement drag and drop for the image
您可以始终使用
$('.box')。on('click',函数(e){
方法……这可能会成功,但请记住,您必须添加另一个on click或doubleclick来禁用,而且,这是一种非常奇怪的行为
我的意思的示例解释
// Implement drag and drop for the image
$('.box').on('click', function(e) {
var $this = $(this),
$window = $(window),
mouseX = e.pageX,
mouseY = e.pageY,
width = $this.outerWidth(),
height = $this.outerHeight()
elemX = $this.offset().left + width - mouseX,
elemY = $this.offset().top + height - mouseY;
e.preventDefault();
$window.on('mousemove.drag', function(e2) {
$this.offset({
left: e2.pageX + elemX - width,
top: e2.pageY + elemY - height
});
}).one('mousedown', function() {
$window.off('mousemove.drag');
});
});
但我会这样做
// Implement drag and drop for the image
$('.box').on('mousedown', function(e) {
var $this = $(this),
$window = $(window),
mouseX = e.pageX,
mouseY = e.pageY,
width = $this.outerWidth(),
height = $this.outerHeight()
elemX = $this.offset().left + width - mouseX,
elemY = $this.offset().top + height - mouseY;
e.preventDefault();
$window.on('mousemove.drag', function(e2) {
$this.offset({
left: e2.pageX + elemX - width,
top: e2.pageY + elemY - height
});
}).one('click', function() {
$window.off('mousemove.drag');
});
});
您可以始终使用
$('.box')。on('click',函数(e){
方法……这可能会成功,但请记住,您必须添加另一个on click或doubleclick来禁用,而且,这是一种非常奇怪的行为
我的意思的示例解释
// Implement drag and drop for the image
$('.box').on('click', function(e) {
var $this = $(this),
$window = $(window),
mouseX = e.pageX,
mouseY = e.pageY,
width = $this.outerWidth(),
height = $this.outerHeight()
elemX = $this.offset().left + width - mouseX,
elemY = $this.offset().top + height - mouseY;
e.preventDefault();
$window.on('mousemove.drag', function(e2) {
$this.offset({
left: e2.pageX + elemX - width,
top: e2.pageY + elemY - height
});
}).one('mousedown', function() {
$window.off('mousemove.drag');
});
});
但我会这样做
// Implement drag and drop for the image
$('.box').on('mousedown', function(e) {
var $this = $(this),
$window = $(window),
mouseX = e.pageX,
mouseY = e.pageY,
width = $this.outerWidth(),
height = $this.outerHeight()
elemX = $this.offset().left + width - mouseX,
elemY = $this.offset().top + height - mouseY;
e.preventDefault();
$window.on('mousemove.drag', function(e2) {
$this.offset({
left: e2.pageX + elemX - width,
top: e2.pageY + elemY - height
});
}).one('click', function() {
$window.off('mousemove.drag');
});
});
问题是为什么?这对大多数用户来说都是意外的行为,你会如何停止拖动?我会在“mousedown”上停止拖动。但当鼠标再次释放时,只需单击鼠标,拖动就会重新启动。除非按下鼠标按钮,否则让某些东西始终可拖动似乎很奇怪。这似乎是重复的:该问题答案中的解决方案对我有效。可能重复的问题是为什么?对于大多数用户来说,这是意外的行为rs,你怎么才能停止拖拉?我会停止拖拉“鼠标向下”。但当鼠标再次释放时,只需单击鼠标,拖动功能就会重新启动。除非按下鼠标按钮,否则,让某些东西始终可以拖动似乎很奇怪。这似乎是重复的:该问题答案中的解决方案对我起到了作用。可能是重复的