【问题标题】:Could you help me. How can I make real-time changing value?你可以帮帮我吗。我怎样才能做出实时变化的价值?
【发布时间】:2021-01-07 12:26:09
【问题描述】:

我有一个代码:

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);
        }
    })

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

【问题讨论】:

    标签: javascript html css arrays dom


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 当window.pageYOffset
    • @jukeer:我想在这个scroll 处理函数中你会想要if (window.pageYOffset &lt; 500) { /* do something */ } 这样的东西。您可以使用if 构造来检查条件并执行和操作。
    • 我试图这样做,但它只工作一次,例如,我们使用“点击”事件而不是“滚动”。仅当我单击一次时,css chanhes 的属性。考虑一下现在offset是600的情况,我点击了,没有发生任何事情,之后我做了一个offset 400(window.pageYOffset
    • @jukeer:您能否编辑问题以提供更完整的示例来演示此特定问题?您可以在可运行的代码 sn-p 中包含 HTML、JavaScript 和 CSS,或者至少使用 jsFiddle 之类的东西链接到场外示例。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 2010-11-18
    • 2021-06-11
    • 1970-01-01
    相关资源
    最近更新 更多