滚动页面时导航栏图片无法缩小的问题求助
滚动页面时导航栏图片无法缩小的问题求助
我现在碰到个头疼的小问题:我想实现两个页面效果——一是滚动页面时,导航栏里的图片能跟着缩小;二是让.hidden-box类的元素滚动到可视区域时实现浮动显示。目前第二个效果是正常工作的,但导航栏的图片不管怎么滚动都完全没反应,就是不缩小,有没有大佬能帮我看看哪里出问题了😭
以下是我写的相关代码:
JavaScript 代码
"use strict"; document.addEventListener("DOMContentLoaded", () => { const observer = new IntersectionObserver((entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add("show"); } }); }); document.querySelectorAll(".hidden-box").forEach((el) => observer.observe(el)); let navbar = document.querySelector(".navbar"); window.addEventListener("scroll", function() { if (window.scrollY > 50) { navbar.classList.add("shrink"); } else { navbar.classList.remove("shrink"); } }); });
CSS 代码
.navbar { background: white; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); border-bottom: 5px solid; border-image: linear-gradient(to right, var(--primary-red), var(--primary-blue)) 1; padding: 5px 0; transition: all 0.3s ease-in-out; } .navbar-brand img { width: 300px !important; height: auto; transition: width 0.3s ease-in-out !important; } .navbar.shrink .navbar-brand img { width: 200px !important; }
HTML 代码
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js"></script> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" /> <nav class="navbar navbar-expand-lg fixed-top" id="navbar"> <div class="container"> <a class="navbar-brand" href="#"> <img src="https://placehold.co/550x305?text=logo550x305.png" class="logo" id="logo" alt="Logo"> </a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav ms-auto"> <li class="nav-item"><a class="nav-link" href="#">item1</a></li> <li class="nav-item"><a class="nav-link" href="#">item2</a></li> <li class="nav-item"><a class="nav-link" href="#">item3</a></li> <li class="nav-item"><a class="nav-link" href="#">item4</a></li> <li class="nav-item"><a class="nav-link" href="">item5</a></li> </ul> </div> </div> </nav>
备注:内容来源于stack exchange,提问作者Paul Dellert
相关产品推荐
相关产品推荐

