我有1个JavaScript函数,可以改变我的滚动托盘的位置,并向左和向右移动,工作正常。
但是,要在每个滚动托盘上使用此函数(我有5个),我需要创建5个不同的slideRight和slideLeft函数(每个函数都有自己的名称),其中我需要在document.getElementById中传递不同的ID。有没有办法只使用一个slideLeft和slideRight函数,并且这些基于ID的函数可以知道向左或向右旋转哪个滑块?
像这个https://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow_multiple的东西,除了我没有幻灯片放映,而是一个滑块与图像在一行。
export function slideRight() {
let container = document.getElementById('scroll-tray-1')
sideScroll(container, 'right', 25, 400, 40);
};
export function slideRight() {
let container = document.getElementById('scroll-tray-2')
sideScroll(container, 'left', 25, 400, 40);
};
function sideScroll(element, direction, speed, distance, step) {
let scrollAmount = 0;
var slideTimer = setInterval(function () {
if (direction === 'left') {
element.scrollLeft -= step;
} else {
element.scrollLeft += step;
}
scrollAmount += step;
if (scrollAmount >= distance) {
window.clearInterval(slideTimer);
}
}, speed);
}
我试图遵循W3学校的例子,但我无法解决这个问题。
1条答案
按热度按时间hmae6n7t1#
我可以通过在调用函数时传递函数参数来解决这个问题。唯一的区别是,当在React中调用带参数的函数时,我必须像箭头函数'()=〉slider(' scroll-tray ',' left ')'一样调用它才能让它工作。