You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

页面滚动至90%时Alert提示重复执行问题求助

解决滚动到页面90%位置时Alert多次触发的问题

我来帮你搞定这个问题~你遇到的核心问题是状态变量excuted被定义在了滚动事件的回调函数内部,每次触发scroll事件时,这个变量都会被重新初始化为false,所以判断条件永远成立,alert会反复弹出。

修正后的代码

var percent = 90; 
var window_scrolled; 
// 把状态变量放到事件外部,确保只初始化一次
var excuted = false;

$(window).scroll(function() { 
    window_scrolled = ($(document).height()/100)*90; 
    if($(window).scrollTop() + $(window).height() >= window_scrolled) { 
        if (!excuted) { 
            alert("scrolled to bottom"); 
            excuted = true;
            // 可选优化:触发后解绑滚动事件,减少性能消耗
            // $(window).off('scroll');
        } 
    } 
});

关键修改说明

  • 将excuted变量移到scroll事件回调函数外部,这样它的状态会在页面生命周期内持续保留,不会每次滚动都被重置为false。
  • 当第一次满足滚动到90%的条件时,excuted会被设为true,后续再滚动到该位置时,判断条件!excuted就不再成立,alert不会重复弹出。
  • 如果你的需求是触发一次后就不再需要监听滚动事件,可以取消注释代码里的$(window).off('scroll'),这样能避免后续不必要的滚动事件监听,优化页面性能。

内容的提问来源于stack exchange,提问作者Van

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.01 00:08:13