老师请问为什么为这段代码,读取到的topNum值一直为0?
# 具体遇到的问题
# 报错信息的截图
# 相关课程内容截图
# 尝试过的解决思路和结果
# 粘贴全部相关代码,切记添加代码注释(请勿截图)
在这里
var MouseoverOrOut = function (idx, lib) {
lib[idx].onmouseover = function () {
console.log(idx);
huadongtiao.style.left = (idx * 92) + 'px';
}
var topNum = document.documentElement.scrollTop || document.body.scrollTop;
var pageNum = topNum/640;
var whatPage = Math.ceil(pageNum);
lib[i].onmouseout = function(){
console.log(topNum);
huadongtiao.style.left = (whatPage * 92)+ 'px';
}
}
for (var i = 0; i < navAll.length; i++) {
MouseoverOrOut(i, navAll);
}
输入代码,可通过选择【代码语言】突出显示
正在回答
同学你好,“不滚动页面”也能获取滚动高度,只不过不滚动页面获取的高度为0。0就是滚动高度,没有滚动页面,肯定为0。假如现在显示到第二屏了,那么页面肯定要滚动啊,不滚动也没有办法显示到第二屏。不管是点击导航或者滚动鼠标滚轮,只要滚动条的滚动高度不为0,肯定会触发window.onscroll,所以建议同学参考老师的第一条回复,在window.onscroll 中获取滚动高度就行,没有其他办法。
另外,作业的导航下划线滚动效果,在课程中都是有详细的讲解的,可以复习一下视频:
地址:https://class.imooc.com/lesson/781#mid=19651
推荐给同学一个学习方法:先学习视频,把视频的案例多练习几遍,案例熟练之后,再做作业加以巩固。这样的学习效率才更高哦。
祝学习愉快~
同学你好,如果页面没有滚动,默认在顶部的时候,获取的高度就是0 。同学的代码中,获取页面高度的代码没有放在window.onscroll中,所以默认获取的滚动高度就是0。例如如下,在滚动事件中添加此代码,当页面滚动就会触发获取新的页面的滚动距离了:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
body{
height: 20000px;
}
</style>
</head>
<body>
<script>
window.onscroll = function () {
var topNum = document.documentElement.scrollTop || document.body.scrollTop;
console.log(topNum)
}
</script>
</body>
</html>
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星