Javascript 循环页
我希望做一些类似于这里解决的事情: 但是我试图使它成为这样,当您到达某个div ID(#循环结束)时,您将转到另一个div ID(#循环开始) 我尝试过的一些例子如下:Javascript 循环页,javascript,jquery,loops,scroll,infinite,Javascript,Jquery,Loops,Scroll,Infinite,我希望做一些类似于这里解决的事情: 但是我试图使它成为这样,当您到达某个div ID(#循环结束)时,您将转到另一个div ID(#循环开始) 我尝试过的一些例子如下: $(document).scroll(function(){ if (document.documentElement.clientHeight + $(window).scrollTop() >= $(document).height()) { $(document).scrollTop(0)
$(document).scroll(function(){
if (document.documentElement.clientHeight + $(window).scrollTop() >= $(document).height()) {
$(document).scrollTop(0)
} else if ($(window).scrollTop() < 1) {
$(document).scrollTop($(document).height())
}
});
基本上。第一个代码示例,其中一个可以在两个方向上无休止地滚动是我要寻找的。但是在#循环开始和#循环结束内循环,而不是在文档结束和文档顶部循环。我有它的工作在这里,我只需要使其工作在调整大小以及不跳到循环结束/开始页面加载立即
编辑
展示我的最新探索。我真的很接近这一点。我最不愿意做的一件事是将其全部包装在一个函数中(+重新计算窗口大小调整时的偏移值puh),以使其在达到特定div时启动。但这样做与循环相冲突
var element_position = $('#loop-init').offset().top;
$(window).on('scroll', function() {
var y_scroll_pos = window.pageYOffset;
var scroll_pos_test = element_position;
if(y_scroll_pos > scroll_pos_test) {
var loopend = $('#loop-end').offset().top;
var loopstart = $('#loop-start').offset().top;
$(document).scroll(function() {
if ( $(document).scrollTop() >= loopend ) {
$(document).scrollTop($('#loop-start').offset().top)
}
else if ( $(document).scrollTop() <= loopstart ) {
$(document).scrollTop($('#loop-end').offset().top)
}
});
}
});
var element_position=$('#loop init').offset().top;
$(窗口).on('scroll',function(){
变量y_scroll_pos=window.pageYOffset;
变量滚动位置测试=元件位置;
如果(滚动位置>滚动位置测试){
var loopend=$('#loop end').offset().top;
var loopstart=$('#loop start').offset().top;
$(文档)。滚动(函数(){
if($(文档).scrollTop()>=loopend){
$(文档).scrollTop($('#循环开始').offset().top)
}
else if($(document).scrollTop()那么找到该元素的滚动位置?在$('document')
中'document'
是什么类型的选择器?一些
元素?(顺便说一句,HTML5无效)或者您打算执行$(document)
相反?从您的问题来看,不清楚您到底想做什么导致堆栈溢出。请提供一个最小的、可重复的示例:您可能还想参加本教程:您可以按照以下操作:$(文档).scrollTop($(“#循环开始”).offset().top)
,如果我没弄错你的问题的话。反过来说:$(文档).scrollTop($('#循环结束').offset().top)
var element_position = $('#loop-init').offset().top;
$(window).on('scroll', function() {
var y_scroll_pos = window.pageYOffset;
var scroll_pos_test = element_position;
if(y_scroll_pos > scroll_pos_test) {
var loopend = $('#loop-end').offset().top;
var loopstart = $('#loop-start').offset().top;
$(document).scroll(function() {
if ( $(document).scrollTop() >= loopend ) {
$(document).scrollTop($('#loop-start').offset().top)
}
else if ( $(document).scrollTop() <= loopstart ) {
$(document).scrollTop($('#loop-end').offset().top)
}
});
}
});