首页 > 编程语言 >JavaScript 网页设计案例 简单的电商案例 页面切换 数据搜索 动态网页

JavaScript 网页设计案例 简单的电商案例 页面切换 数据搜索 动态网页

时间:2024-10-01 08:53:05浏览次数:3  
标签:category product 网页 color 案例 const 电商 display card

JavaScript 网页设计案例 简单的电商案例 页面切换 数据搜索 动态网页

1. 案例描述

以下是一个简单的产品展示网页,用户可以通过点击不同的产品类别按钮来查看相应的产品,且在鼠标悬停时显示产品详情。页面还将包含一个搜索框,用户可以输入关键词来筛选产品。

在这里插入图片描述

2. 文件结构

- index.html    // 主页面
- styles.css    // 样式文件
- script.js     // JavaScript 脚本

3. index.html 文件

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>产品展示页面</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>

    <!-- 搜索框 -->
    <div class="search-bar">
        <input type="text" id="search-input" placeholder="搜索产品...">
    </div>

    <!-- 产品类别选择按钮 -->
    <div class="category-buttons">
        <button class="category-btn" data-category="all">全部</button>
        <button class="category-btn" data-category="electronics">电子产品</button>
        <button class="category-btn" data-category="furniture">家具</button>
        <button class="category-btn" data-category="clothing">服装</button>
    </div>

    <!-- 产品展示区 -->
    <div class="product-grid">
        <div class="product-card" data-category="electronics">
            <img src="electronics1.jpg" alt="电子产品1">
            <h3>智能手机</h3>
            <p class="product-details">高性能智能手机,价格实惠。</p>
        </div>
        <div class="product-card" data-category="furniture">
            <img src="furniture1.jpg" alt="家具1">
            <h3>现代沙发</h3>
            <p class="product-details">舒适现代的沙发,适合各种风格。</p>
        </div>
        <div class="product-card" data-category="clothing">
            <img src="clothing1.jpg" alt="服装1">
            <h3>时尚外套</h3>
            <p class="product-details">冬季保暖时尚外套,品质保证。</p>
        </div>
        <!-- 继续添加其他产品 -->
    </div>

    <script src="script.js"></script>
</body>
</html>

4. styles.css 文件

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body {
    font-family: Arial, sans-serif;
    background-color: #f4f4f4;
    padding: 20px;
}

.search-bar {
    text-align: center;
    margin-bottom: 20px;
}

#search-input {
    padding: 10px;
    width: 300px;
    font-size: 16px;
}

.category-buttons {
    text-align: center;
    margin-bottom: 20px;
}

.category-btn {
    padding: 10px 20px;
    margin: 5px;
    cursor: pointer;
    border: none;
    background-color: #007BFF;
    color: white;
    font-size: 16px;
}

.category-btn:hover {
    background-color: #0056b3;
}

.product-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 20px;
}

.product-card {
    background-color: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    width: 200px;
    text-align: center;
    transition: transform 0.3s ease;
}

.product-card img {
    width: 100%;
    height: 150px;
    object-fit: cover;
}

.product-card h3 {
    margin: 10px 0;
    font-size: 18px;
}

.product-card p {
    padding: 0 10px;
    color: #555;
    font-size: 14px;
    display: none;
}

.product-card:hover {
    transform: translateY(-5px);
}

.product-card:hover p {
    display: block;
}

5. script.js 文件

// 获取所有产品卡片和类别按钮
const products = document.querySelectorAll('.product-card');
const categoryButtons = document.querySelectorAll('.category-btn');
const searchInput = document.getElementById('search-input');

// 类别按钮点击事件
categoryButtons.forEach(button => {
    button.addEventListener('click', () => {
        const category = button.getAttribute('data-category');

        // 根据类别显示或隐藏产品
        products.forEach(product => {
            if (category === 'all' || product.getAttribute('data-category') === category) {
                product.style.display = 'block';
            } else {
                product.style.display = 'none';
            }
        });
    });
});

// 搜索框输入事件
searchInput.addEventListener('input', () => {
    const searchText = searchInput.value.toLowerCase();

    products.forEach(product => {
        const productName = product.querySelector('h3').textContent.toLowerCase();

        // 根据输入内容筛选产品
        if (productName.includes(searchText)) {
            product.style.display = 'block';
        } else {
            product.style.display = 'none';
        }
    });
});

6. 关键功能解释

类别筛选:

category-buttons 里的按钮点击时,通过设置 data-category 属性来筛选对应类别的产品卡片。
JavaScript 根据点击的按钮 data-category,匹配 product-card 的 data-category,显示或隐藏对应的产品。
搜索功能:

用户在搜索框输入关键词后,通过 input 事件监听输入内容。
JavaScript 使用 .includes() 方法匹配产品名称,实时筛选符合条件的产品。
悬停效果:

使用 CSS 中的 hover,实现产品卡片的悬停效果,显示更多产品详情并添加微妙的上移动画。

7、资料路径

通过网盘分享的文件:JavaScript 网页设计案例
链接: https://pan.baidu.com/s/1TuB4EeKKVZGI-XTQ2zF8Cg?pwd=tbbv 提取码: tbbv

标签:category,product,网页,color,案例,const,电商,display,card
From: https://blog.csdn.net/weixin_42462436/article/details/142665329

相关文章

  • 【已解决】打开知乎网页出现乱码问题
    之前一直使用MicrosoftEdge浏览器,访问知乎网一直没问题,今天突然出现了乱码,不管怎样刷新都没有用,而且刷新后还不一样:英文没有问题,中文出现了乱码。网上搜了一下,好像是关于cookie的问题,为了防止各种搜索引擎的爬虫。我寻思着我也没用爬虫啊,然后打开另一个浏览器试了一下发......
  • JS网页设计案例
            下面是一个简单的JavaScript网页设计案例,展示了如何使用HTML、CSS和JavaScript创建一个动态的网页。案例:简单的待办事项列表1.HTML部分<!DOCTYPEhtml><htmllang="zh"><head><metacharset="UTF-8"><metaname="viewport"conte......
  • Unity实战案例全解析:RTS游戏的框选和阵型功能(5)阵型功能 优化一
    前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(4)阵型功能-CSDN博客本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程我只是对重要功能进行分析和做出笔记分享,并未无师自通,吃水不忘打井人本案例的实现流程图 兵种排序  首先在一个阵型中,我们希望远......
  • Jumpserver堡垒机应用部署案例
    本案例主要讲述了如何安装Jumpserver堡垒机应用,以及使用Jumpserver堡垒机对接OpenStack平台进行管理一、OpenStack平台对接堡垒机案例准备1.规划节点IP主机名节点192.168.20.21controllerOpenStackController节点192.168.20.22jumpserverOpenStack堡垒......
  • 强化学习-python案例
    强化学习是一种机器学习方法,旨在通过与环境的交互来学习最优策略。它的核心概念是智能体(agent)在环境中采取动作,从而获得奖励或惩罚。智能体的目标是最大化长期奖励,通过试错的方式不断改进其决策策略。在强化学习中,智能体观察当前状态,选择动作,并根据环境反馈(奖励和下一个状......
  • 26.5 图形数据库的案例分析
    26.5图形数据库的案例分析26.5图形数据库的案例分析26.5.1社交网络分析26.5.2欺诈检测26.5.3供应链管理26.5.4生物信息学研究26.5.5结论26.5图形数据库的案例分析在本章节中,我们将通过具体的案例分析来展示图形数据库在解决实际问题中的应用。这将帮助读......
  • 大数据-156 Apache Druid 案例实战 Scala Kafka 订单统计
    点一下关注吧!!!非常感谢!!持续更新!!!目前已经更新到了:Hadoop(已更完)HDFS(已更完)MapReduce(已更完)Hive(已更完)Flume(已更完)Sqoop(已更完)Zookeeper(已更完)HBase(已更完)Redis(已更完)Kafka(已更完)Spark(已更完)Flink(已更完)ClickHouse(已更完)Kudu(已更完)Druid(正在更新…)章节内容上节我们完成了如......
  • 【JavaScript】搭建一个具有记忆的简洁个人待办网页
    1.HTML结构文档类型声明:<!DOCTYPEhtml>这告诉浏览器这是一个HTML5文档。HTML标签:<htmllang="zh-CN">表示整个页面的内容,lang="zh-CN"表示内容使用简体中文。头部信息:<head><!--...--></head>包含页面的元数据,如字符集、视图窗口设置、标题和样式。样......
  • Python画笔案例-070 绘制通电棒棒
    1、绘制通电棒棒通过python的turtle库绘制通电棒棒,如下图:2、实现代码 绘制通电棒棒,以下为实现代码:"""通电棒棒.py注意亮度为0.5的时候最鲜艳本程序需要coloradd模块支持,安装方法:pipinstallcoloradd程序运行需要很长时间,请耐心等待。可以......
  • 简单的XGBoost案例
    一、前言    今天我们来一起学习一个新的算法模型,XGboost算法:     1、XGBoost的特性        XGBoost(ExtremeGradientBoosting)是一个高效的开源机器学习库,广泛应用于结构化数据的分类和回归问题。它基于梯度提升算法,利用决策树的集成方法来提高模型的......