jquery 如何滚动使用输入类型单选按钮创建的列表?

jhkqcmku  于 2022-12-12  发布在  jQuery
关注(0)|答案(1)|浏览(104)

这是我的代码,我希望它们在我向下或向上滚动时被激活,而不是通过单击它们

<input type="radio" name="buttons" id="r1" checked>    
<input type="radio" name="buttons" id="r2">    
<input type="radio" name="buttons" id="r3">    
<input type="radio" name="buttons" id="r4">   

<div class="controls">
    <label for="r1"><span></span>LAB & Process Development</label>
    <label for="r2"><span></span>Quality & Regulatory</label>
    <label for="r3"><span></span>Engineering & Project Management</label>
    <label for="r4"><span></span>EHS</label>
</div>

谢谢你帮我

yfwxisqw

yfwxisqw1#

我真的不明白你想达到什么目的。
但是,如果你想在scroll上做任何事情,你应该监听scroll事件。你有两个选择:
1.您可以检查用户何时在无线电上滚动鼠标
1.您可以随时检查用户何时滚动
在第一种情况下:

document.getElementById('controls').addEventListener('scroll', () => {
    //activate your element
});

在第二种情况下:

document.addEventListener('scroll', () => {
    //activate your element
});

EDIT:按照注解中的要求。这取决于你想如何实现这一点。例如,你可能想通过循环检查每个收音机:

let current = 1;
let max = 4;

document.addEventListener('scroll', () => {
    //you need to uncheck the current one first
    document.getElementById('r' + current).checked = false;
    //If you reach the last radio element you reset the counter
    if(current == max) 
        current = 1;
    else
        current += 1;

    //Finally you activate the next radio
    document.getElementById('r' + current).checked = true;
});

这是一个可以改进的非常简单的实现。

相关问题