gpt4 book ai didi

javascript - 在页面上的点后禁用向上滚动

转载 作者:太空狗 更新时间:2023-10-29 15:54:31 30 4
gpt4 key购买 nike

一旦超出某个点,我需要禁用在 html 页面上向上滚动的功能。我还需要一种返回所述页面顶部的机制。

我尝试使用以下代码来完成此操作,但它对我来说还没有用,因为页面是响应式的(因此点的位置可能会随着窗口的大小而改变)。

$(function() {
var scrollPoint = 200;
var scrolledPast = false;
$(window).scroll(function() {
$(window).scrollTop() > scrollPoint ? scrolledPast = true : '';
$(window).scrollTop() < scrollPoint && scrolledPast == true ?
$(window).scrollTop(scrollPoint) : '';
}).scroll();
});

这可以用 Javascript/JQuery 完成吗?

最佳答案

var minScroll = 200;
var scrollPoint = 0;

function setPage(id) {
scrollPoint = $("#" + id).offset().top;
document.location.href = "#" + id;
}

$(function() {
$(window).on("scroll", function() {
var current = $(window).scrollTop();
if (scrollPoint >= minScroll) {
if (current < scrollPoint) $(window).scrollTop(scrollPoint);
else {
//scrollPoint = $(window).scrollTop();
}
} else {
//scrollPoint = $(window).scrollTop();
}
});

$("#return").on("click", function() {
scrollPoint = 0;
$(window).scrollTop(0);
});

wave("page1");
wave("page2");
wave("page3");
});

function wave(id) {
var maxWave = 30;
var minWave = 2;

for (var i = 0; i < 50; i++) {
var waveSize = Math.floor(Math.random() * (maxWave - minWave) + minWave);
var j = 0;

for (j; j < waveSize; j++) {
for (var k = 0; k < j; k++) {
$("#" + id).append("#");
}
console.log(j + " vs " + waveSize);
if (j == waveSize - 1) $("#" + id).append(")");
else $("#" + id).append("\\");

$("#" + id).append("<br />");
}

for (j = j - 2; j >= 0; j--) {
for (var k = 0; k < j; k++) {
$("#" + id).append("#");
}
$("#" + id).append("/<br />");
}
}
}
#return {
position: fixed;
top: 55px;
right: 5px;
}
#pg1 {
position: fixed;
top: 75px;
right: 5px;
}
#pg2 {
position: fixed;
top: 95px;
right: 5px;
}
#pg3 {
position: fixed;
top: 115px;
right: 5px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button id="return">Return To Top</button>
<button id="pg1" onclick="setPage('page1');">Page 1</button>
<button id="pg2" onclick="setPage('page2');">Page 2</button>
<button id="pg3" onclick="setPage('page3');">Page 3</button>

<div id="page1">Page 1
<br />
</div>
<div id="page2">Page 2
<br />
</div>
<div id="page3">Page 3
<br />
</div>

关于javascript - 在页面上的点后禁用向上滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274302/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com