链接向右滚动以向下滚动
Linking Scroll right to scroll down
我创建了一个水平滚动网站。我遇到的一个问题是页面只能向下滚动,而用户总是试图向右滚动。想知道是否有自定义代码“link”向下滚动向右滚动的行为。?
谢谢
您可以考虑附加 window.scrollBy method to a function called by the onscroll 事件。
或者,如果您使用的是 JQuery,则有一个鼠标滚轮插件可以执行水平滚动。设置说明定义明确 here.
以下是 Kyle Soeltz 建议的示例:
var lastScrollTop = window.pageYOffset;
window.onscroll = function(e) {
var st = window.pageYOffset || document.documentElement.scrollTop;
if (st > lastScrollTop){
document.body.scrollLeft = st;
console.log("right");
} else if (st < lastScrollTop) {
document.body.scrollLeft = st;
console.log("left");
}
lastScrollTop = st <= 0 ? 0 : st; // For Mobile or negative scrolling
}
让您的页面完全按照您想要的方式左右滚动是很棘手的,因此您必须尝试使用 document.body.scrollLeft = st;
行。
您也可以使用 .scrollBy({ left: 100, behavior: 'smooth' });
,它比上面的抖动少,但是由于 'smooth' 属性 而有一个小的延迟。例如
var lastScrollTop = window.pageYOffset;
window.onscroll = function(e) {
var st = window.pageYOffset || document.documentElement.scrollTop;
if (st > lastScrollTop){
document.body.scrollBy({ left: 100, behavior: 'smooth' });
console.log("right");
} else if (st < lastScrollTop) {
document.body.scrollBy({ left: -100, behavior: 'smooth' });
console.log("left");
}
lastScrollTop = st <= 0 ? 0 : st; // For Mobile or negative scrolling
}
向右滚动触发向下滚动事件的方法如下:
var lastScrollX = window.pageXOffset;
window.onscroll = function(e) {
var st = window.pageXOffset || document.documentElement.scrollLeft;
if (st > lastScrollX){
document.body.scrollBy({ top: 100, left: 0, behavior: 'smooth' });
console.log("right");
} else if (st < lastScrollX) {
document.body.scrollBy({ top: -100, left: 0, behavior: 'smooth' });
console.log("left");
}
lastScrollX = st <= 0 ? 0 : st; // For Mobile or negative scrolling
}
我创建了一个水平滚动网站。我遇到的一个问题是页面只能向下滚动,而用户总是试图向右滚动。想知道是否有自定义代码“link”向下滚动向右滚动的行为。?
谢谢
您可以考虑附加 window.scrollBy method to a function called by the onscroll 事件。
或者,如果您使用的是 JQuery,则有一个鼠标滚轮插件可以执行水平滚动。设置说明定义明确 here.
以下是 Kyle Soeltz 建议的示例:
var lastScrollTop = window.pageYOffset;
window.onscroll = function(e) {
var st = window.pageYOffset || document.documentElement.scrollTop;
if (st > lastScrollTop){
document.body.scrollLeft = st;
console.log("right");
} else if (st < lastScrollTop) {
document.body.scrollLeft = st;
console.log("left");
}
lastScrollTop = st <= 0 ? 0 : st; // For Mobile or negative scrolling
}
让您的页面完全按照您想要的方式左右滚动是很棘手的,因此您必须尝试使用 document.body.scrollLeft = st;
行。
您也可以使用 .scrollBy({ left: 100, behavior: 'smooth' });
,它比上面的抖动少,但是由于 'smooth' 属性 而有一个小的延迟。例如
var lastScrollTop = window.pageYOffset;
window.onscroll = function(e) {
var st = window.pageYOffset || document.documentElement.scrollTop;
if (st > lastScrollTop){
document.body.scrollBy({ left: 100, behavior: 'smooth' });
console.log("right");
} else if (st < lastScrollTop) {
document.body.scrollBy({ left: -100, behavior: 'smooth' });
console.log("left");
}
lastScrollTop = st <= 0 ? 0 : st; // For Mobile or negative scrolling
}
向右滚动触发向下滚动事件的方法如下:
var lastScrollX = window.pageXOffset;
window.onscroll = function(e) {
var st = window.pageXOffset || document.documentElement.scrollLeft;
if (st > lastScrollX){
document.body.scrollBy({ top: 100, left: 0, behavior: 'smooth' });
console.log("right");
} else if (st < lastScrollX) {
document.body.scrollBy({ top: -100, left: 0, behavior: 'smooth' });
console.log("left");
}
lastScrollX = st <= 0 ? 0 : st; // For Mobile or negative scrolling
}