gpt4 book ai didi

javascript - 右键单击拖动?

转载 作者:行者123 更新时间:2023-12-02 23:48:04 25 4
gpt4 key购买 nike

有没有办法让我的网站能够通过右键单击按钮拖动 DOM 元素?根据this MDN 引用资料中,drag 事件具有 buttons 属性,其中 1 表示左键单击,2 表示右键单击,3 表示两者。所以我写了一些非常简单的东西来测试:

data:text/html, <div id="draggable" draggable="true" ondrag="console.log(event.buttons)" oncontextmenu="return false">Drag This</div>

当我用左按钮拖动这个 div 时,它会将 1 打印到控制台(当拖动过程中 ondrag 事件不断触发时,会重复打印)。当我尝试用右键拖动它时,没有任何反应 - 我无法拖动它。当我开始用左按钮拖动它,然后按住左按钮和右按钮时,它会打印 3。如果我这样做,然后释放左按钮并仅按住右按钮,拖动会立即结束。

有没有办法允许使用鼠标右键拖动元素?

(如果重要的话,我正在使用最新的 Chrome 稳定版。)

最佳答案

I am Use this code and work for me.

this in right and left both click to drag div.

dragDiv.onmousedown = function(e) {

var shiftX = e.clientX - dragDiv.getBoundingClientRect().left;
var shiftY = e.clientY - dragDiv.getBoundingClientRect().top;

dragDiv.style.position = 'absolute';
dragDiv.style.zIndex = 1000;
document.body.append(dragDiv);

moveDiv(e.pageX, e.pageY);

function moveDiv(pageX, pageY) {
dragDiv.style.left = pageX - shiftX + 'px';
dragDiv.style.top = pageY - shiftY + 'px';
}

function onMouseMoveDiv(e) {
moveDiv(e.pageX, e.pageY);
}
document.addEventListener('mousemove', onMouseMoveDiv);

dragDiv.onmouseup = function() {
document.removeEventListener('mousemove', onMouseMoveDiv);
dragDiv.onmouseup = null;
};

};

dragDiv.ondragstart = function() {
return false;
};
body
{
padding:10px;
}
#dragDiv
{
height:15px;
width:15px;
border:15px solid black;
background:blue;
}
<html>
<head>
<title>Drag Div using Right or Left Mouse Click.</title>
</head>
<body>
<p>Drag Div using Right or Left Mouse Click.</p>
<div id="dragDiv"></div>
</body>
</html>

关于javascript - 右键单击拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42336777/

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