j查询滚动顶部麻烦
jQuery scrollTop troubles
我正在编写一个带有开头标题的测验网络应用程序,然后是后面的 10 个问题。开头的div 和每个问题的div 都是兄弟姐妹,所以我通过将 current.nextSibling 和 current.previousSibling 传递给我正在使用的任何函数来遍历页面。
现在我正在尝试通过它的"animate"和"scrollTop"方法使用 jQuery 创建一个平滑的滚动,但它不起作用。有人对此有任何想法吗?代码附在这里,链接到小提琴在这里:https://jsfiddle.net/fjydnc9m/1/
var main = function () {
var root = $('html, body');
var current = document.getElementById("opening");
$('.upButton').click(function () {
$('html, body').animate({ scrollTop:$(current.previousSibling).offset().top}, 2000);
current = current.previousSibling;
});
$('.downButton').click(function() {
$('html, body').animate({ scrollTop: $(current.nextSibling).offset().top}, 2000);
current = current.nextSibling;
});
}
$(document).ready(main);
你一直在尝试在常规的HTML DOM元素上使用jQuery .offset()
。请参阅小提琴的更新版本:https://jsfiddle.net/fjydnc9m/12/
我所做的是通过jQuery获取上一个和下一个兄弟姐妹,并在此上使用.offset()
。
请注意,您还必须考虑current
是第一个或最后一个包装器的情况,否则会发生一些奇怪的滚动。您可以通过在滚动之前检查prevSibling
或nextSibling
的长度是否> 0 来执行此操作。
如果记录 current
变量,您会发现有一个分配给current
变量的#text
同级。
看看这个小提琴:
https://jsfiddle.net/fjydnc9m/13/
您可以看到我在scrollTop
函数中使用current
变量之前为它分配了两次:
var main = function() {
var root = $('html, body');
var current = document.getElementById("opening");
$('.upButton').click(function() {
current = current.previousSibling;
current = current.previousSibling;
$('html, body').animate({
scrollTop: $(current).offset().top
}, 2000);
console.log(current);
});
$('.downButton').click(function() {
current = current.nextSibling;
current = current.nextSibling;
$('html, body').animate({
scrollTop: $(current).offset().top
}, 2000);
console.log(current);
});
}
$(document).ready(main);
请注意,我正在记录当前变量。删除其中一个current
分配并查看日志显示的内容(您将看到发生了什么)。
相关文章:
- 单击顶部导航时如何进行向下滚动效果(向下滑动).
- jQuery粘性插件可变顶部间距
- 使用jQuery更改元素的顶部位置
- 背景图像顶部的滚动图像不移动
- 滚动然后捕捉到顶部而不是取消捕捉
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何在离子框架+有角度的框架中制作顶部标签
- 计算“;“左”;以及“;顶部“;来自固定位置浮动元素的值
- 如何在引导程序元素的顶部添加掩码
- 滚动到Rails 4应用程序中的顶部jQuery
- 将列表元素动画制作到顶部
- 抵消在具有pageY计算的相对容器中位于顶部
- 输入类型按钮返回历史记录并返回顶部
- 滚动固定滚动顶部()的跳跃效果
- 如何将图表放在顶部和底部
- 通过水平滚动将页眉固定到页面顶部
- jQuery:如何检测用户何时再次滚动到顶部
- 如何向下滚动页面,使指定的元素位于顶部
- 制作自定义铬应用程序顶部栏
- j查询滚动顶部麻烦