如何用第一个滚动条跳转到页面的某个点
How to jump with the first scroll to a certain point of the page?
下面是一个例子http://jsfiddle.net/pwk0vvuo/
<div id="wrapper" style="height:100px; width:100%;">
<div id="header" style="height:300px; width:100%;"></div>
</div>
当我第一次向下滚动时,我想页面是否可以跳过整个标题。然后,当我向上滚动时,我希望只要屏幕上出现标题,滚动就会跳到页面顶部(显示整个标题)。
如果不是一个完整的解决方案,则相当接近
var lastScrollTop = 0;
$(window).scroll(function () {
if ($('#header').scrollTop() + $('#header').innerHeight() >= $(window).scrollTop()) {
var st = $(this).scrollTop();
if (st > lastScrollTop) {
console.log('scroll down');
$('html, body').animate({
scrollTop: $('#header').scrollTop() + $('#header').innerHeight()
}, 2000, function() {
$('html, body').stop();
});
} else {
console.log('scroll up');
$('html, body').animate({
scrollTop: $('#header').scrollTop()
}, 2000, function() {
$('html, body').stop();
});
}
}
lastScrollTop = st;
});
您可以简单地检查您的位置以及是否使用jQuery滚动。所以你可以这样做:
编辑:
var lastScrollTop = 0;
var firstScrollDown = true;
var scrollUp = false;
$(window).scroll(function (event) {
var st = $(this).scrollTop();
if (st > $('#content').offset().top) {
scrollUp = true;
}
if (st > lastScrollTop) {
if ($(window).scrollTop() !== 0 && firstScrollDown) {
firstScrollDown = false;
$('html, body').animate({
scrollTop: $('#content').offset().top
}, 'slow');
}
} else {
if ($(window).scrollTop() < $('#content').offset().top && scrollUp) {
$('html, body').animate({
scrollTop: $('#header').offset().top
}, 'slow');
scrollUp = false;
}
}
lastScrollTop = st;
});
http://jsfiddle.net/4n6mer0y/1/
相关文章:
- 使用数据上的角度更改设置集合的第一个元素的动画
- 当单击第一个李时,它显示内容一,当单击第二个李时,它显示内容二
- 字母计数:返回重复字母数最多的第一个单词
- 如何使用Javascript在HTML表中查找第一个空行
- 分页:如何用AJAX加载第一个页面
- 全局标志仅与第一个匹配项匹配的Regexp
- 访问ng repeat中的第一个项目
- 使用jQuery只返回选中复选框后的第一个表单元格值
- 使用jQuery插入HTML页面的第一个项目缺少结束标记
- 关闭第二个事件源上的第一个事件源's onopen方法
- 无法获取vis.js最后一个或第一个选定的网络节点
- 如何设置第一个手风琴面板关闭
- 使用filter和map方法将数组中某些元素的第一个字母大写-JavaScript
- jQuery空选择,但不是第一个选项
- JavaScript Regex 将单词替换为其第一个字母,除非在括号内
- 在Jquery中选择第一个搜索项而不单击它
- 如何用第一个滚动条跳转到页面的某个点
- 如何用br替换找到的第一个空格
- 如何用jQuery在span标签中换行文本,除了第一个单词
- 如何用jQuery解析JSON,同时忽略第一个元素