window.pageYOffset在Chrome中不起作用

时间:2015-01-26 03:27:07

标签: 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);

1 个答案:

答案 0 :(得分:3)

因为初始ypos是0.它没有更新。无论你向下滚动多少,它都会一直保持为零。要更新它,它应该在see()函数内部。所以每次向下滚动窗口,它将被更新。 它正在工作 。不要把它与“不工作”语句混淆。它只是因为,ypos变量被分配给同一个“ 0“value。看看我的例子。我已经改变了它。当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>