【JavaScript 网页设计实例教程:电商+视频】详细教程

JavaScript 网页设计实例教程

  • 一、电商网页设计
  • 二、视频网页设计

一、电商网页设计

  1. 页面布局规划
    • 确定电商网页的主要板块,如导航栏、商品展示区、购物车、用户登录/注册等。
    • 使用 HTML 和 CSS 构建基本的页面结构。例如:
<!DOCTYPE html>
<html lang="en">

<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>
  <header>
    <nav>
      <ul>
        <li>首页</li>
        <li>商品分类</li>
        <li>购物车</li>
        <li>用户登录</li>
      </ul>
    </nav>
  </header>
  <main>
    <section class="product-list">
      <!-- 商品展示区 -->
    </section>
  </main>
  <footer>
    <!-- 版权信息等 -->
  </footer>
</body>

</html>
  • 在 CSS 文件(styles.css)中定义样式,使页面具有良好的外观和布局。
  1. 商品展示
    • 使用 JavaScript 和 HTML 结构来动态展示商品信息。可以创建一个商品数据数组,包含商品的名称、价格、图片等信息。例如:
const products = [
  { name: '商品 1', price: 100, image: 'product1.jpg' },
  { name: '商品 2', price: 200, image: 'product2.jpg' },
  // 更多商品...
];
  • 在 HTML 中创建一个容器用于展示商品,例如:
<section class="product-list">
  <div class="product-item" data-product-index="0"></div>
  <div class="product-item" data-product-index="1"></div>
  <!-- 更多商品项 -->
</section>
  • 使用 JavaScript 遍历商品数据数组,将商品信息填充到对应的 HTML 元素中。例如:
const productItems = document.querySelectorAll('.product-item');
productItems.forEach((item, index) => {
  const product = products[index];
  item.innerHTML = `
    <img src="${product.image}" alt="${product.name}">
    <h3>${product.name}</h3>
    <p>价格:${product.price}</p>
    <button>加入购物车</button>
  `;
});
  1. 购物车功能
    • 创建一个购物车对象来存储已添加的商品。例如:
const cart = {
  items: [],
  addItem(product) {
    this.items.push(product);
  },
  removeItem(product) {
    const index = this.items.indexOf(product);
    if (index > -1) {
      this.items.splice(index, 1);
    }
  }
};
  • 在商品展示区的“加入购物车”按钮上添加点击事件处理程序,将商品添加到购物车。例如:
const addToCartButtons = document.querySelectorAll('.product-item button');
addToCartButtons.forEach((button, index) => {
  button.addEventListener('click', () => {
    const product = products[index];
    cart.addItem(product);
    console.log('商品已加入购物车:', product.name);
  });
});
  • 在页面上显示购物车中的商品数量和总价等信息。例如:
function updateCartDisplay() {
  const cartCount = document.getElementById('cart-count');
  const cartTotal = document.getElementById('cart-total');
  let totalPrice = 0;
  cart.items.forEach(product => {
    totalPrice += product.price;
  });
  cartCount.textContent = cart.items.length;
  cartTotal.textContent = totalPrice;
}
updateCartDisplay();
  1. 用户登录/注册
    • 创建用户登录和注册的表单。例如:
<div class="user-login">
  <form>
    <input type="text" placeholder="用户名">
    <input type="password" placeholder="密码">
    <button type="submit">登录</button>
  </form>
  <a href="#">注册</a>
</div>
  • 使用 JavaScript 处理表单提交事件,验证用户输入并进行登录或注册操作。例如:
const loginForm = document.querySelector('.user-login form');
loginForm.addEventListener('submit', (e) => {
  e.preventDefault();
  const username = document.querySelector('input[type="text"]').value;
  const password = document.querySelector('input[type="password"]').value;
  // 进行登录验证逻辑
});

二、视频网页设计

  1. 页面布局
    • 设计视频网页的布局,包括视频播放器、视频列表、搜索栏等。例如:
<!DOCTYPE html>
<html lang="en">

<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>
  <header>
    <nav>
      <ul>
        <li>首页</li>
        <li>视频分类</li>
        <li>搜索</li>
      </ul>
    </nav>
  </header>
  <main>
    <section class="video-player">
      <!-- 视频播放器 -->
    </section>
    <section class="video-list">
      <!-- 视频列表 -->
    </section>
  </main>
</body>

</html>
  • 使用 CSS 定义页面的样式,使视频播放器和视频列表有合适的布局和外观。
  1. 视频播放器
    • 使用 HTML5 的<video>标签创建视频播放器。例如:
<section class="video-player">
  <video controls>
    <source src="video.mp4" type="video/mp4">
    你的浏览器不支持 HTML5 视频。
  </video>
</section>
  • 使用 JavaScript 控制视频的播放、暂停、音量等功能。例如:
const videoPlayer = document.querySelector('video');
videoPlayer.addEventListener('play', () => {
  console.log('视频开始播放');
});
videoPlayer.addEventListener('pause', () => {
  console.log('视频暂停');
});
const volumeSlider = document.getElementById('volume-slider');
volumeSlider.addEventListener('input', () => {
  videoPlayer.volume = volumeSlider.value;
});
  1. 视频列表
    • 创建一个视频数据数组,包含视频的标题、描述、链接等信息。例如:
const videos = [
  { title: '视频 1', description: '这是视频 1 的描述', src: 'video1.mp4' },
  { title: '视频 2', description: '这是视频 2 的描述', src: 'video2.mp4' },
  // 更多视频...
];
  • 在 HTML 中创建一个容器用于展示视频列表。例如:
<section class="video-list">
  <div class="video-item" data-video-index="0"></div>
  <div class="video-item" data-video-index="1"></div>
  <!-- 更多视频项 -->
</section>
  • 使用 JavaScript 遍历视频数据数组,将视频信息填充到对应的 HTML 元素中。例如:
const videoItems = document.querySelectorAll('.video-item');
videoItems.forEach((item, index) => {
  const video = videos[index];
  item.innerHTML = `
    <h3>${video.title}</h3>
    <p>${video.description}</p>
    <button>播放</button>
  `;
});
  • 在视频列表的“播放”按钮上添加点击事件处理程序,当点击按钮时,将对应的视频加载到视频播放器中播放。例如:
const playButtons = document.querySelectorAll('.video-item button');
playButtons.forEach((button, index) => {
  button.addEventListener('click', () => {
    const video = videos[index];
    const videoPlayer = document.querySelector('video');
    videoPlayer.src = video.src;
    videoPlayer.play();
  });
});
  1. 搜索功能
    • 在页面上创建一个搜索栏。例如:
<input type="text" placeholder="搜索视频">
  • 使用 JavaScript 监听搜索栏的输入事件,当用户输入关键词时,过滤视频列表,只显示与关键词匹配的视频。例如:
const searchInput = document.querySelector('input[type="text"]');
searchInput.addEventListener('input', () => {
  const keyword = searchInput.value.toLowerCase();
  const videoItems = document.querySelectorAll('.video-item');
  videoItems.forEach(item => {
    const title = item.querySelector('h3').textContent.toLowerCase();
    if (title.includes(keyword)) {
      item.style.display = 'block';
    } else {
      item.style.display = 'none';
    }
  });
});

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis设计与实现 学习笔记 第十七章 集群

Redis集群是Redis提供的分布式数据库方案&#xff0c;集群通过分片&#xff08;sharding&#xff0c;水平切分&#xff09;来进行数据共享&#xff0c;并提供复制和故障转移功能。 17.1 节点 一个Redis集群通常由多个节点&#xff08;node&#xff09;组成&#xff0c;在刚开…

分布式----Ceph部署

目录 一、存储基础 1.1 单机存储设备 1.2 单机存储的问题 1.3 商业存储解决方案 1.4 分布式存储&#xff08;软件定义的存储 SDS&#xff09; 1.5 分布式存储的类型 二、Ceph 简介 三、Ceph 优势 四、Ceph 架构 五、Ceph 核心组件 #Pool中数据保存方式支持两种类型&…

【Qt聊天室客户端】消息功能--发布程序

1. 获取文件内容 主要目标是实现获取内容二进制数据的接口&#xff0c;主要是为后面的消息功能提供服务 具体实现 客户端发送请求 服务端处理请求&#xff0c;同时支持三种数据类型 客户端处理服务端的响应 2. 发送图片消息 客户端与服务端的通信约定 客户端从服务器中获取图片…

ab (Apache Bench)的使用

Apache Bench&#xff08;ab&#xff09;是一个用于基准测试HTTP Web服务器的命令行工具&#xff0c;广泛用于评估和优化Web服务器的性能。以下是关于Apache Bench的详细介绍&#xff0c;包括其功能、使用方法、常用参数和输出结果解析。 功能 性能测试&#xff1a;通过模拟多…

【HarmonyNext】显示提示文字的方法

【HarmonyNext】显示提示文字的方法 本文介绍在 HarmonyNext 中显示提示文字的两种常见方法&#xff1a;使用自定义弹窗 CustomDialog 和使用 promptAction 的 showToast 方法。 一、使用自定义弹窗 CustomDialog 在 HarmonyNext 中&#xff0c;自定义弹窗是实现复杂提示信…

第三十一天|贪心算法| 56. 合并区间,738.单调递增的数字 , 968.监控二叉树

目录 56. 合并区间 方法1&#xff1a;fff 看方法2&#xff1a;fff优化版 方法3&#xff1a; 738.单调递增的数字 968.监控二叉树&#xff08;贪心二叉树&#xff09; 56. 合并区间 判断重叠区间问题&#xff0c;与452和435是一个套路 方法1&#xff1a;fff 看方法2&am…

【自用】0-1背包问题与完全背包问题的Java实现

引言 背包问题是计算机科学领域的一个经典优化问题&#xff0c;分为多种类型&#xff0c;其中最常见的是0-1背包问题和完全背包问题。这两种问题的核心在于如何在有限的空间内最大化收益&#xff0c;但它们之间存在一些关键的区别&#xff1a;0-1背包问题允许每个物品只能选择…

【Unity】ScriptableObject的应用:利用配方合成新物体

前一篇已经使用ScriptableObject(SO)类配置可放置物体&#xff0c;本篇探索更多的SO类应用场景。 需求分析 将若干指定物体放在工作台上&#xff0c;可以生成新的物体。 成果展示 Scene部分 准备工作台&#xff0c;放在工作台上的物体全部放在指定PlacedObjects空物体下。 …

STM32设计学生宿舍监测控制系统

目录 前言 一、本设计主要实现哪些很“开门”功能&#xff1f; 二、电路设计原理图 电路图采用Altium Designer进行设计&#xff1a; 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 随着科技的飞速发展和智能化时代的到来&#xff0c;学生宿舍的安全、舒适…

TofuAI处理BT1120时序视频要求

时序要求 BT.1120视频用于1920x108030Hz数字视频输入。具体时序必须严格按照说明。BT.1120输入电平为1.8V。 BT1120数字视频采用YCbCr彩色格式输出&#xff0c;串行数据位宽为16bit&#xff0c;亮度在 高8bit&#xff0c;色度在低8bit&#xff0c;亮度和色度在同一个时钟周期输…

C++内存池实现

1.内存池概念 内存池就和其他的池数据&#xff08;如线程池&#xff09;结构类似&#xff0c;由程序维护一个“池”结构来管理程序使用的内存&#xff0c;然后根据需要从内存池中申请使用内存或者向内存池中释放内存&#xff0c;来达到高效管理内存的目的。 在一般的内存管理的…

设计模式-参考的雷丰阳老师直播课

一般开发中使用的模式为模版模式策略模式组合&#xff0c;模版用来定义骨架&#xff0c;策略用来实现细节。 模版模式 策略模式 与模版模式特别像&#xff0c;模版模式会定义好步骤定义好框架&#xff0c;策略模式定义小细节 入口类 使用模版模式策略模式开发支付 以上使用…

Vue3打包自动生成版本JSON文件,添加系统版本检查,实现系统自动更新提示

实现该功能一共有三步。废话不多说&#xff0c;直接上代码&#xff01;&#xff01;&#xff01; 第一步&#xff1a;打包时自动生成版本信息的js文件&#xff0c;versionUpdate.js import fs from fs; import path from path; import { ElMessageBox } from element-plus; i…

华为云前台展示公网访问需要购买EIP,EIP流量走向

华为云前台网络&#xff08;VPC,安全组&#xff0c;EIP&#xff09; 1.EIP网段是从哪里划分的&#xff1f; 管理员在后台Service_OM已设置 Service_OM-网络资源-外部网络-创建外部网络基本信息&#xff1a;配置参数&#xff1a;*名称 public*网络类型 LOCAL 不带标签 类似开…

[Mysql基础] 表的操作

一、创建表 1.1 语法 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 说明&#xff1a; field 表示列名 datatype 表示列的类型 character set 字符集&#xff0c;如果没有指定字符集…

ASP.NET MVC宠物商城系统

该系统采用B/S架构&#xff0c;使用C#编程语言进行开发&#xff0c;以ASP.NET MVC框架为基础&#xff0c;以Visual Studio 2019为开发工具&#xff0c;数据库采用SQL Server进行保存数据。系统主要功能包括登录注册、宠物展示、个人中心、我的订单、购物车、用户管理、宠物类别…

ArkTS学习笔记:ArkTS起步

ArkTS是HarmonyOS的主力应用开发语言&#xff0c;基于TypeScript扩展&#xff0c;强化了静态检查和分析&#xff0c;旨在提升程序稳定性和性能。它采用静态类型&#xff0c;禁止运行时改变对象布局&#xff0c;并对UI开发框架能力进行扩展&#xff0c;支持声明式UI描述和自定义…

Tofu AI视频处理模块视频输入配置方法

应用Tofu产品对网络视频进行获取做视频处理时&#xff0c;首先需要配置Tofu产品的硬件连接关系与设备IP地址、视频拉流地址。 步骤1 Tofu设备点对点直连或者通过交换机连接到电脑&#xff0c;电脑IP配置到与Tofu默认IP地址同一个网段。 打开软件 点击右上角系统设置 单击左侧…

stream学习

Stream流 定义 Steam流&#xff0c;用于操作集合或者数组中的数据&#xff0c;大量结合了Lamda表达式的语法风格&#xff0c;代码简洁。 重点&#xff1a; 流只能收集一次 ​ 获取Stream流 Stream流要与数据源建立连接。 1.list ​ 直接调用steam()即可 // list List<Stri…

鸿蒙动画开发06——打断动画

1、前 言 UI界面除了运行动画之外&#xff0c;还承载着与用户进行实时交互的功能。当用户行为根据意图变化发生改变时&#xff0c;UI界面应做到即时响应。 例如用户在应用启动过程中&#xff0c;上滑退出&#xff0c;那么启动动画应该立即过渡到退出动画&#xff0c;而不应该…