首页 > 解决方案 > 你可以帮帮我吗。我怎样才能做出实时变化的价值?

问题描述

我有一个代码:

var appearScroll = function(){
    let fline = document.getElementById("skills__listone");
    var skills = document.getElementById("skills");
    var baselocation = 0;
    fline.style.opacity = 0;
    var distance = window.pageYOffset;
    window.addEventListener("scroll", function(){
        for (i = 0 ; i < 800; i++){
            i = distance;
            console.log(distance);
        }
    })

如您所见,我将变量的值发送到控制台日志,当我滚动时它应该会改变。但它不起作用,只有当我刷新页面时值才会改变。

标签: javascripthtmlcssarraysdom

解决方案


假设您在appearScroll某处调用该函数,该函数只读取window.pageYOffset 一次的值。然后在scroll事件中,您的事件处理函数将该值记录到控制台(出于某种原因最多 800 次?)。

为了读取事件中的新值scroll,您必须在该事件处理程序中读取该值。例如:

window.addEventListener("scroll", function(){
    console.log(window.pageYOffset);
})

(当然,将相同的值记录 800 次似乎也没有必要。尽管我想我并不完全清楚您要对涉及的未使用的各种其他值做什么。)


推荐阅读