gpt4 book ai didi

javascript - 单击并拖动 Firefox 中的链接会阻止 mouseup 事件

转载 作者:行者123 更新时间:2023-11-28 00:50:47 24 4
gpt4 key购买 nike

我想实现一个水平点击和拖动的网站,它在 Chrome 中完美运行,但在 Firefox 中不完美。

我的问题:在 Firefox 中单击并拖动链接会使停止图标出现在光标旁边,然后阻止 mouseup 事件。

我所知道的:问题只出现在链接上,我发现这篇文章 ( javascript and dragging in firefox ) 建议在 文档上使用 addEventListener ,但它并没有修复它。

下面是旧代码(在 codepen 上查看更新后的代码)

const slider = document.querySelector('.items');
let isDown = false;
let startX;
let scrollLeft;

document.addEventListener('mousedown', (e) => {
isDown = true;
slider.classList.add('active');
startX = e.pageX - slider.offsetLeft;
scrollLeft = slider.scrollLeft;
});
document.addEventListener('mouseleave', () => {
isDown = false;
slider.classList.remove('active');
});
document.addEventListener('mouseup', () => {
isDown = false;
slider.classList.remove('active');
});
document.addEventListener('mousemove', (e) => {
if(!isDown) return;
e.preventDefault();
const x = e.pageX - slider.offsetLeft;
const walk = (x - startX) * 3; //scroll-fast
slider.scrollLeft = scrollLeft - walk;
console.log(walk);
});

HTML

    <div class="grid-container">

<main class="grid-item main">
<div class="items">
<a class="item item1" href="#"></a>
<a class="item item2" href="#"></a>
<a class="item item3"></a>
<a class="item item4"></a>
<div class="item item5"></div>
<div class="item item6"></div>
<div class="item item7"></div>
<div class="item item8"></div>
<div class="item item9"></div>
<div class="item item10"></div>
</div>
<p>Click & Drag <i>powered by Javascript</i></p>
</main>
</div>

最佳答案

解决方案:要解决您可以做的问题

const links = document.querySelectorAll('a');
links.forEach(element => {element.addEventListener('mousedown',function(e) {
e.preventDefault();
})
})

这是链接:https://codepen.io/greg_o/pen/jQrMON

关于javascript - 单击并拖动 Firefox 中的链接会阻止 mouseup 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53227879/

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