javascript网页设计案例

发布于:2024-10-15 ⋅ 阅读:(115) ⋅ 点赞:(0)

1. 动态响应式导航栏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <style>
        body { margin: 0; font-family: Arial, sans-serif; }
        .navbar { background-color: #333; overflow: hidden; }
        .navbar a { float: left; display: block; color: white; padding: 14px 20px; text-decoration: none; }
        .navbar a:hover { background-color: #ddd; color: black; }
        @media screen and (max-width: 600px) {
            .navbar a { float: none; width: 100%; text-align: center; }
        }
    </style>
</head>
<body>
    <div class="navbar">
        <a href="#home">Home</a>
        <a href="#services">Services</a>
        <a href="#contact">Contact</a>
        <a href="#about">About</a>
    </div>
</body>
</html>
  • 说明:通过简单的CSS和媒体查询实现响应式导航栏,适配不同屏幕尺寸。

2. 图片懒加载 (Lazy Loading)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Lazy Loading</title>
    <style>
        img { width: 100%; height: auto; display: block; margin: 10px 0; }
    </style>
</head>
<body>
    <img data-src="image1.jpg" alt="Image 1">
    <img data-src="image2.jpg" alt="Image 2">
    <img data-src="image3.jpg" alt="Image 3">
    
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            const lazyImages = document.querySelectorAll("img[data-src]");
            const lazyLoad = () => {
                lazyImages.forEach(img => {
                    if (img.getBoundingClientRect().top < window.innerHeight) {
                        img.src = img.getAttribute("data-src");
                    }
                });
            };
            window.addEventListener("scroll", lazyLoad);
            lazyLoad();
        });
    </script>
</body>
</html>
  • 说明:使用JavaScript懒加载图片,减少初始加载时间并提高页面性能。

3. 简单图片滑动切换 (Carousel)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        .carousel { position: relative; max-width: 500px; margin: auto; }
        .carousel img { width: 100%; }
        .prev, .next { cursor: pointer; position: absolute; top: 50%; padding: 16px; color: white; background-color: rgba(0, 0, 0, 0.5); border: none; }
        .prev { left: 0; }
        .next { right: 0; }
    </style>
</head>
<body>
    <div class="carousel">
        <img src="image1.jpg" class="slides">
        <img src="image2.jpg" class="slides" style="display:none">
        <img src="image3.jpg" class="slides" style="display:none">
        <button class="prev" onclick="changeSlide(-1)"></button>
        <button class="next" onclick="changeSlide(1)"></button>
    </div>

    <script>
        let currentIndex = 0;
        function changeSlide(direction) {
            let slides = document.querySelectorAll(".slides");
            slides[currentIndex].style.display = "none";
            currentIndex = (currentIndex + direction + slides.length) % slides.length;
            slides[currentIndex].style.display = "block";
        }
    </script>
</body>
</html>
  • 说明:简单的图片轮播,带有“上一张”和“下一张”按钮切换功能。

4. 倒计时计时器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        #timer { font-size: 48px; text-align: center; margin-top: 20px; }
    </style>
</head>
<body>
    <div id="timer"></div>
    
    <script>
        function startTimer(duration) {
            let timer = duration, minutes, seconds;
            const display = document.getElementById("timer");
            setInterval(() => {
                minutes = Math.floor(timer / 60);
                seconds = timer % 60;
                seconds = seconds < 10 ? '0' + seconds : seconds;
                display.textContent = minutes + ":" + seconds;
                if (--timer < 0) timer = duration;
            }, 1000);
        }
        window.onload = () => startTimer(300);  // 5-minute timer
    </script>
</body>
</html>
  • 说明:一个简单的倒计时计时器,开始倒计时5分钟,时间到了会自动重置。

5. 表单验证 (Form Validation)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <style>
        input { display: block; margin: 10px 0; padding: 8px; width: 200px; }
        span { color: red; display: none; }
    </style>
</head>
<body>
    <form id="form">
        <input type="text" id="username" placeholder="Username">
        <span id="error">Username is required</span>
        <button type="submit">Submit</button>
    </form>

    <script>
        const form = document.getElementById("form");
        const username = document.getElementById("username");
        const error = document.getElementById("error");

        form.addEventListener("submit", (e) => {
            if (username.value === "") {
                error.style.display = "block";
                e.preventDefault();
            } else {
                error.style.display = "none";
            }
        });
    </script>
</body>
</html>
  • 说明:JavaScript实现表单验证,未填写用户名时显示错误提示。

希望对刚接触js的你有所帮助!


网站公告

今日签到

点亮在社区的每一天
去签到