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

页面滚动过header高度后如何将隐藏图片设置为display:flex显示

实现方案

你可以通过JavaScript监听页面滚动事件,判断滚动距离超过jumbotron区域高度时修改图片的display属性即可实现需求,完整修改后的代码如下:

<!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
</head>
<body>

    <!-- header start -->
    <div class="container-fluid">
        <div class="jumbotron">
            <h1>Header area</h1>
        </div>
    </div>
    <!-- header end -->

    <!-- Your page contant start -->
    <div class="container-fluid">
        <div class="alert alert-primary" style="height: 800px;">
            <h1>Your page contant area</h1>
            <img src="https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png" id="myContent">
        </div>
    </div>
    <!-- Your page contant end -->

<style>
    #myContent{
        display: none;
    }
</style>
<script>
// 获取对应DOM元素
const jumbotronEl = document.querySelector('.jumbotron')
const imgEl = document.getElementById('myContent')

window.addEventListener('scroll', () => {
    // 获取当前页面垂直滚动距离,兼容不同浏览器
    const scrollDistance = window.scrollY || document.documentElement.scrollTop
    // 获取jumbotron区域的总高度(包含内边距、边框)
    const headerHeight = jumbotronEl.offsetHeight
    // 滚动距离大于等于jumbotron高度时显示图片
    if(scrollDistance >= headerHeight) {
        imgEl.style.display = 'flex'
    } else {
        // 不需要回滚隐藏时可删除当前else分支
        imgEl.style.display = 'none'
    }
})
</script>
</body>
</html>

补充说明

  • 滚动事件触发频率较高,如果页面有大量其他交互逻辑,可以添加节流函数优化性能,减少重复计算次数
  • 不需要滚动回顶部时重新隐藏图片的话,直接删除else分支的代码即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:36:06