reactjs React:使用一个JavaScript函数更改和定位多个ID

vkc1a9a2  于 2022-11-29  发布在  React
关注(0)|答案(1)|浏览(128)

我有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学校的例子,但我无法解决这个问题。

hmae6n7t

hmae6n7t1#

我可以通过在调用函数时传递函数参数来解决这个问题。唯一的区别是,当在React中调用带参数的函数时,我必须像箭头函数'()=〉slider(' scroll-tray ',' left ')'一样调用它才能让它工作。

相关问题