所以基本上我已经制作了一个自定义元素,它可以做这样的事情:
var target = document.getElementById(self.getAttribute("for"));
self.querySelector(":scope > main:first-child").addEventListener("click", function () {
target.scrollLeft -= 400;
});
self.querySelector(":scope > main:last-child").addEventListener("click", function () {
target.scrollLeft += 400;
});
target.addEventListener("mousewheel", function (e) {
if (e.wheelDelta < 0) {
target.scrollLeft += 400;
} else {
target.scrollLeft -= 400;
}
});
一般来说,这个自定义元素中有两个主要元素,只要是“for”属性。单击主元素时,“for”指定的元素将水平滚动。滚动鼠标滚轮时应该发生同样的事情。但是,主要元素工作正常,而鼠标滚动仍然失败。
我制作了几个控制台日志来跟踪内容。当mousewheel事件被正确触发时,target.scrollLeft始终为0.始终锁定为0.再次,它通过“click”事件正确更改。
这个奇怪的问题一直困扰着我好几天,有谁知道为什么?谢谢!
答案 0 :(得分:0)
没关系,我错过了那里的e.preventDefault()。添加后一切正常。