滚动到下一个或上一个元素
我有一个包含最大3个元素的滚动器,并有向下箭头,可以降低到下一个元素,然后向上箭头返回到以前的元素,但是我很难使其正常工作。
这是html的片段:
<div class="mob-keys-container" id="mob-keys-container">
<img id="mob-icon-up" src="./images/mob-up-btn.png" alt="down" width="40px">
<div id="icon-container">
<img class="answerIcon mobIcon active" draggable="true" id="answer_1_mob" src="./images/5.1.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_2_mob" src="./images/5.2.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_3_mob" src="./images/5.3.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_4_mob" src="./images/5.4.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_5_mob" src="./images/5.5.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_6_mob" src="./images/5.6.png" alt="key">
</div>
<img id="mob-icon-down" src="./images/mob-down-btn.png" alt="down" width="40px">
</div>
这是jQuery:
$('#mob-icon-down').on('click', () => {
// finds visible elements(max 3)
let $visible = $('.mobIcon:visible');
// finds first element
let $firstVisible = $visible.first();
// finds last element
let $lastVisible = $visible.last();
// find next element
let $nextVisible = $lastVisible.next();
// hides scroller arrow if there are less than 3 elements
if ($visible.length < 3) {
$('#mob-icon-down').hide();
} else {
$firstVisible.hide();
$nextVisible.show();
}
})
$('#mob-icon-up').on('click', () => {
// finds visible elements(max 3)
let $visible = $('.mobIcon:visible');
// finds first element
let $firstVisible = $visible.first();
// finds last element
let $lastVisible = $visible.last();
// finds element before the first
let $prevVisible = $firstVisible.prev();
// hides scroller arrow if there are less than 3 elements
if ($visible.length < 3) {
$('#mob-icon-up').hide();
} else {
$lastVisible.hide();
$prevVisible.show();
}
})
当没有下一个/上一个元素时,相关箭头应该消失,并且如果这种情况发生变化,但现在是一团糟,但元素计数撞到墙后,元素计数却破裂了,剩下的所有内容均为没有元素,也没有箭头。
I have a scroller that contains max 3 elements and has down arrow to go down to next elements and up arrow to go back to previous elements but i'm having trouble making it work.
Here is snippet of html:
<div class="mob-keys-container" id="mob-keys-container">
<img id="mob-icon-up" src="./images/mob-up-btn.png" alt="down" width="40px">
<div id="icon-container">
<img class="answerIcon mobIcon active" draggable="true" id="answer_1_mob" src="./images/5.1.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_2_mob" src="./images/5.2.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_3_mob" src="./images/5.3.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_4_mob" src="./images/5.4.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_5_mob" src="./images/5.5.png" alt="key">
<img class="answerIcon mobIcon active" draggable="true" id="answer_6_mob" src="./images/5.6.png" alt="key">
</div>
<img id="mob-icon-down" src="./images/mob-down-btn.png" alt="down" width="40px">
</div>
and here is JQuery:
$('#mob-icon-down').on('click', () => {
// finds visible elements(max 3)
let $visible = $('.mobIcon:visible');
// finds first element
let $firstVisible = $visible.first();
// finds last element
let $lastVisible = $visible.last();
// find next element
let $nextVisible = $lastVisible.next();
// hides scroller arrow if there are less than 3 elements
if ($visible.length < 3) {
$('#mob-icon-down').hide();
} else {
$firstVisible.hide();
$nextVisible.show();
}
})
$('#mob-icon-up').on('click', () => {
// finds visible elements(max 3)
let $visible = $('.mobIcon:visible');
// finds first element
let $firstVisible = $visible.first();
// finds last element
let $lastVisible = $visible.last();
// finds element before the first
let $prevVisible = $firstVisible.prev();
// hides scroller arrow if there are less than 3 elements
if ($visible.length < 3) {
$('#mob-icon-up').hide();
} else {
$lastVisible.hide();
$prevVisible.show();
}
})
The corresponging arrows should disappear when there are no next/previous elements and reappear if this changes but it's a mess right now and element count breaks after it hits a wall and all that is left are no elements and no arrows.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)