本文将介绍10个常用的JavaScript网页特效实现,包括轮播图、图片懒加载、无限滚动等,每个案例都提供完整代码和详细讲解。
一、响应式导航栏
1.1 效果展示
- 桌面端显示完整导航
- 移动端显示汉堡菜单
- 平滑的动画过渡
| |
| <nav class="navbar"> |
| <div class="brand">Logo</div> |
| <button class="toggle-btn"> |
| <span></span> |
| <span></span> |
| <span></span> |
| </button> |
| <ul class="nav-links"> |
| <li><a href="#home">首页</a></li> |
| <li><a href="#about">关于</a></li> |
| <li><a href="#services">服务</a></li> |
| <li><a href="#contact">联系</a></li> |
| </ul> |
| </nav> |
复制
| |
| .navbar { |
| |
| display: flex; |
| justify-content: space-between; |
| align-items: center; |
| padding: 1rem; |
| background: #fff; |
| box-shadow: 0 2px 5px rgba(0,0,0,0.1); |
| } |
| |
| .toggle-btn { |
| |
| display: none; |
| } |
| |
| .nav-links { |
| |
| display: flex; |
| gap: 2rem; |
| } |
| |
| @media (max-width: 768px) { |
| |
| .toggle-btn { |
| |
| display: block; |
| } |
| |
| .nav-links { |
| |
| display: none; |
| position: absolute; |
| top: 100%; |
| left: 0; |
| width: 100%; |
| background: #fff; |
| } |
| |
| .nav-links.active { |
| |
| display: flex; |
| flex-direction: column; |
| } |
| } |
复制
| |
| const toggleBtn = document.querySelector('.toggle-btn'); |
| const navLinks = document.querySelector('.nav-links'); |
| |
| toggleBtn.addEventListener('click', () => { |
| |
| navLinks.classList.toggle('active'); |
| }); |
| |
| |
| document.addEventListener('click', (e) => { |
| |
| if (!e.target.closest('.navbar')) { |
| |
| navLinks.classList.remove('active'); |
| } |
| }); |
复制
二、图片懒加载
2.1 使用Intersection Observer
| <img class="lazy" |
| data-src="image.jpg" |
| src="placeholder.jpg" |
| alt="懒加载图片"> |
复制
| |
| function lazyLoad() { |
| |
| const images = document.querySelectorAll('img.lazy'); |
| |
| const imageObserver = new IntersectionObserver((entries, observer) => { |
| |
| entries. |
复制