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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1552037.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

深蕾半导体Astra™ SL1620详细介绍,嵌入式物联网处理器

一&#xff0c;SL1620是什么 Astra™ SL系列是深蕾半导体推出的高度集成的嵌入式物联网处理器SoC&#xff08;System on Chip&#xff09;系列产品&#xff0c;专为多模式消费者、企业和工业物联网工作负载而设计。SL1620是Astra™ SL系列中的一款成本和功耗优化的安全嵌入式So…

解决 Failed to connect to 127.0.0.1 port XXXX: Connection refused问题

查看自己的代理&#xff0c;如果有设置&#xff0c;取消即可。注意https还是http&#xff0c;或者都取消算了 git config --global http.proxy git config --global --unset http.proxygit config --global https.proxy git config --global --unset https.proxy注意如果有人在…

进程的管道

进程之间的通信有两种&#xff0c;无名管道通信和有名管道通信&#xff0c; 为什么有通信呢&#xff0c;可以理解为你有一个同事&#xff0c;你两干一件事从不同的方向&#xff0c;哪一件事你干&#xff0c;哪一件事他干&#xff0c;你俩得知道吧&#xff0c;差不多是这个意思…

AMD硬件分析工具简介

Introduction to profiling tools for AMD hardware — ROCm Blogs **注意:** 本文博客内容此前为[ AMD实验室笔记]博客系列的一部分。 让代码功能正确只是基础&#xff0c;在许多行业中&#xff0c;还要求应用程序及其复杂的软件栈尽可能高效地运行以满足操作需求。这尤为具有…

Linux gadget 模拟触控屏 支持多点触控

通过gadget命令行生成hid设备 下面xxx自己根据需要修改&#xff0c;例如VID,PID&#xff0c;产品名称 const char *INSTALL_GADGET_CMDS[] {"modprobe libcomposite","mkdir /sys/kernel/config/usb_gadget/g1","echo xxx > /sys/kernel/config/…

华为 海思22AP10(SS524)H.265 编解码处理器用户指南

1.1 概述 22AP10 是针对多路高清 / 超高清&#xff08; 1080p/4M/5M/4K &#xff09; DVR 产品应用开发的新一代专 业 SoC 芯片。 22AP10 集成了 ARM Cortex-A7 四核处理器和性能强大的 图像分析工具 推理引擎&#xff0c;支持多种智能算法应用。同时&#xff0c; 2…

智能招聘系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;企业管理&#xff0c;招聘信息管理&#xff0c;应聘信息管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;招聘信息&#xff0c;我的 开发系统&…

启动服务并登录MySQL9数据库

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) Windows平台下安装与配置MyS…

QSqlDatabase在多线程中的使用

Qt中多线程使用数据库_qt数据库管理类支持多数据库,多线程-CSDN博客 1. 代码&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPushButton> #include <QSqlDatabase> #include <QSqlQuery> #include <QSqlError>…

Chainlit集成LlamaIndex并使用通义千问实现和数据库交互的网页对话应用(text2sql)

前言 我在之前的几篇文章中写了如何使用Chainlit集成Langchain并使用通义千问实现和数据库交互的网页对话应用&#xff0c;但是发现Langchain的几种和数据库交互的组件都不够让我满意&#xff0c;虽然已经满足了大部分场景的需求&#xff0c;但是问题还是很多&#xff0c;比如…

无人机协同作业中的多网融合技术详解

无人机协同作业中的多网融合技术是一种复杂且高效的技术体系&#xff0c;它旨在通过整合多种通信网络和技术&#xff0c;实现多架无人机之间的无缝协同作业&#xff0c;从而提升任务执行效率、增强系统可靠性和扩展应用场景。以下是对该技术的详细解析&#xff1a; 一、多网融…

【C++】多态练习题(面试常考)

学习之前&#xff0c;建议观看&#xff1a;【C】多态&#xff1a;深度剖析&#xff08;多态、虚函数、抽象类、底层原理&#xff09;_c 多态和虚函数,虚函数的实现原理-CSDN博客https://blog.csdn.net/2301_80555259/article/details/142178677?spm1001.2014.3001.5501 一.概念…

解决 Macos下 Orbstack docker网络问题

两种解决方法&#xff0c;第一种开代理 参考 —— 但是我这一种没成功&#xff0c;第二种方法是换镜像源 { "registry-mirrors": ["http://hub-mirror.c.163.com","https://docker.mirrors.ustc.edu.cn","https://mirrors.tencent.com&q…

《向量数据库指南》——Milvus 和 Fivetran 如何为 AI 构建基础

哈哈,说起 Milvus 和 Fivetran 如何为 AI 构建基础,这可真是个有意思的话题!来,让我这个向量数据库领域的“老司机”给你详细讲解一番,保证让你听得津津有味,还能学到不少干货! Milvus 和 Fivetran:AI 搜索解决方案的黄金搭档 在当今这个数据爆炸的时代,AI 已经成为…

使用MTVerseXR SDK实现VR串流

1、概述​ MTVerseXR SDK 是摩尔线程GPU加速的虚拟现实&#xff08;VR&#xff09;流媒体平台&#xff0c;专门用于从远程服务器流式传输基于标准OpenXR的应用程序。MTVerseXR可以通过Wi-Fi和USB流式将VR内容从Windows服务器流式传输到XR客户端设备, 使相对性能低的VR客户端可…

【10000字pandas数据可视化超全笔记整理】Numpy Pandas | 常用API介绍 | 缺失值处理 matplotlib数据可视化介绍

文章目录 Numpy 部分NumPy的数组类被称作ndarray&#xff0c;通常被称作数组。属性创建方法内置函数运算基本运算矩阵运算 Pandas部分总述Serise 对象创建属性方法运算 DataFrame属性索引操作添加删除插入列 保存读取文件保存读取 数据加载分组聚合语法格式: 基本绘图 数据组合…

Vue3 Typescript 前端页面5min后无操作自动退出至登录页面

效果图&#xff1a; 前端页面5min无操作&#xff0c;弹出弹窗提示用户系统将在30s后退出&#xff0c;30s后系统自动退出至登录页面。 <template><div><div class"f-z-20-px">{{ remainTime }}秒后无操作将退出</div><el-dialogtitle&quo…

C语言 getchar 函数完全解析:掌握字符输入的关键

前言 在C语言中&#xff0c;getchar 是一个非常实用的函数&#xff0c;用于从标准输入流&#xff08;通常是键盘&#xff09;读取单个字符。这对于处理文本输入非常有用&#xff0c;尤其是在需要逐个字符处理的情况下。本文将深入探讨 getchar 函数的用法和特点&#xff0c;并…

【Ubuntu】git

文章目录 1.配置SSH key2. 基础知识操作命令1分支branch 如果对git命令使用不熟悉&#xff0c;推荐一个非常棒的git在线练习工具 Learn Git Branching。 https://m.runoob.com/git/git-basic-operations.html 1.配置SSH key ssh-keygen -t rsa -C "YOUR EMAIL"完成…

软考中级网络规划设计师已过,分享一些备考心得

据说通过率只有15%左右&#xff0c;蛮低&#xff0c;但我还是一次过了。 其实参加考试的人不多&#xff0c;考场上来的人也就一半&#xff0c;很多人报名之后弃考了。。。所以我觉得最重要的还是坚持。 网规不像高项是热门科目&#xff0c;参考资料很多&#xff0c;自学的话某…