当移动到最后一个li时,返回到第一个li(使用Jquery滚动到下一个)
Back to first li when move to last li ( Using Jquery Scroll To Next)
我正在创建水平网页因为它没有任何主菜单我将使用"下一个"answers"上一个"按钮但当我使用jQuery时,它是一个问题
李什么时候到脚本错误当到达最后一个元素时,我需要知道如何到达或返回第一个元素
这是我现在的代码
<ul class="hidden-container">
<li id="left" class="left">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</li>
<li id="home" class="left">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</li>
<li id="right" class="left">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</li>
</ul>
和javascript:
<script>
$(function(){
$('html, body').animate({ scrollLeft: $("#home").offset().left });
var currentElement = $("li#home");
// completely ignoring boundaries
$("#prev").click(function() {
currentElement = currentElement.prev();
scrollTo(currentElement);
});
$("#next").click(function() {
currentElement = currentElement.next();
scrollTo(currentElement);
});
function scrollTo(element) {
$(window).scrollLeft(element.position().left);
}
});
</script>
CSS:
body {
height: 800px;
width: 940px;
}
#container {
width: 2700px;
position: relative;
}
#prev {
position: fixed;
z-index: 6;
top: 0;
left: 0;
}
#next {
position: fixed;
z-index: 7;
top: 0;
right: 0;
}
.hidden-container {
position: absolute;
left: 0;
top: 0;
z-index: 1;
}
#home {
width: 700px;
visibility: hidden;
}
#left {
width: 700px;
visibility: hidden;
}
#right {
width: 700px;
visibility: hidden;
}
我使用向左滚动,因为主页在中心,所以在第一次加载时,窗口视口将强制居中或转到#home
感谢
currentElement
可能是一个空的jQuery集合。如果它为空,您可以简单地将其替换为同一集合的第一个/最后一个。
$("#prev").click(function() {
var ce = currentElement.prev();
if (!ce.length) {
ce = currentElement.last();
}
scrollTo(ce);
});
$("#next").click(function() {
var ce = currentElement.next();
if (!ce.length) {
ce = currentElement.first();
}
scrollTo(ce);
});
您需要检查当前元素之后是否还有其他元素。由于在最后一个li
之后没有任何内容,所以当没有任何内容作为.next()
返回时会出现错误。
$("#next").click(function() {
if (currentElement.next().length > 0) {
currentElement = currentElement.next();
} else {
currentElement = $("li#left");
}
scrollTo(currentElement);
}
您需要对另一个按钮执行同样的操作,确保存在前一个元素或将目标设置为#right
。
相关文章:
- 使用jquery动态创建ul-li
- 使用Jquery在li内部获取具有特定文本的锚点
- 如何将li类更改为li id's在Jquery中
- 如何使用jquery显示具体的li数
- 使用jquery显示特定的li标记
- 在jQuery UI中获取ul和li值,拖放即可排序
- 如何让li项目在这个jQuery列表中滑动和/或淡出视图
- jQuery复选框(在ul>li下)检查事件
- 如何更改dynamicaly的主题添加了li项jquery mobile
- 在jQuery中将目标从li更改为类
- 加载更多li's在ul-JQuery中
- 获取带有 jQuery 中的文本值的 AN LI 的 ID
- jQuery根据字符串大小调整LI的大小
- jquery .删除整个 li 或 table 元素后
- jQuery循环遍历每个li并检查一个类
- 使用jquery在ul菜单中添加li dynamic
- 如何使用 jQuery 选择上一个 LI
- 从 ul li jquery 获取所选项目
- 获取li jQuery的位置
- removing the li jquery