作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
一旦超出某个点,我需要禁用在 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/
我是一名优秀的程序员,十分优秀!