javascript - window.pageYOffset 在 Chrome 中不起作用

标签 javascript

所以我绝对是 js 的初学者,这可能很简单,但我不知道为什么这不起作用。 我试图在页面 Y 偏移大于 30 时显示一个 div,但它不起作用。

//js在下面

var x = document.getElementById('play');
var ypos = window.pageYOffset;

var see = function() {
    if (ypos > 30) {

    x.style.opacity = 1;

    } else {

        console.log('not working');
    }
}

window.addEventListener("scroll", see);

最佳答案

因为初始 ypos 是 0。它不会更新。无论你向下滚动多少,它始终保持为零。要更新它,它应该在 see() 函数内。所以每次向下滚动时窗口,它将被更新。并且它正在工作。不要将它与“不工作”语句混淆。这只是因为,ypos 变量被分配给相同的“0"值。请参阅我的示例。我已更改它。当 ypos>30

时,它会将不透明度设置为 0.4

var x = document.getElementById('play');


var see = function() {
var ypos = window.pageYOffset;
    if (ypos > 30) {

    x.style.opacity = '0.4';

    } else {

        alert('scrolled more than 30 !!');
    }
}

window.addEventListener("scroll", see);
<div style='width:600px;height:2000px;background:red;border:1px solid black;' id='play'>lol</div>

关于javascript - window.pageYOffset 在 Chrome 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28144414/

相关文章:

javascript - 使用 sinon 匹配数组内的对象

javascript - 在使用 ES6 类和生成器函数时,如何避免使用 `self = this` hack?

javascript - 日期对象字符串的正则表达式

javascript - 模块构建失败,Vue js 中的 vue-router.esm.js

javascript - 从后面的代码关闭 SP.UI.ModalDialog PopUp

javascript - 尽管我可以在控制台上看到 Blob 图像,但它不会显示在 UI 上

javascript - 如何使用 mongodb 脚本生成 UUID

javascript - 对filter()函数的澄清;怎么运行的

javascript - 为什么一种看似较长的字符串转 JavaScript 日期方法比另一种看起来更短、更简单的方法更快?

Javascript在下拉更改时设置隐藏的表单值