JS 打造仿腾讯影视轮播导航_js 打造仿腾讯影视轮播导航的软件

boyanx3个月前技术教程10

首页 Banner 不是简单的「几张图轮播」,而是「大图 + 侧边导航 + 自动播放 + 手动介入」的复合组件。本文用 JS原生代码实现一条无依赖、可复用、可扩展的影视轮播链路,涵盖数据驱动、事件委托、状态管理三大核心技能。

效果预览

一、数据约定

把后端返回的列表抽象成统一结构:

// data.js
const data = [
  {
    title: "三十而已",
    desc: "话题爽剧!姐姐飒气挑战",
    img: "",
    bg: "rgb(25,117,180)"
  },
  // ... 更多对象
]
  • title:导航主标题
  • desc:副标题,用于 hover 提示
  • img:大图地址
  • bg:背景色,与大图同步切换

二、html骨架

<div class="content">
  <div class="top-nav"></div>
  <div class="imgs" id="imgs">
  </div>
  <div class="side-bar" id="side-bar">
    <a href="#" class="cnhz">
      <img src="./img/all.png"> 
        猜你会追
	</a>
    <a href="#" class="zbtj"> 
      <img src="./img/tj.png"> 
        重磅推荐
	</a>
  </div>
</div>

三、js链式渲染三步走

1.初始化:生成大图与导航

一次循环同时生成两张「a」:左侧大图与右侧导航,减少遍历次数。

2.鼠标介入:hover 即切换

使用 onmouseenter 而非 onmouseover,避免子元素冒泡导致频繁触发。

3.自动播放:定时器 + 索引循环

nextIndex = (index + 1) % data.length 实现首尾循环;nextIndex + 2 跳过「猜你会追」和「重磅推荐」两个标题节点。

四、边界与优化细节

1.鼠标离开继续自动播放

tagNav.onmouseleave = () => {
  t = setInterval(move, 3000)
}

2.背景色同步切换

大图 abackgroundColor 直接读取 item.bg,避免额外计算。

3.长文字截断

CSS 设置 white-space: nowrap; overflow: hidden; text-overflow: ellipsis;,hover 时通过 title 属性展示完整标题。

4.无闪烁切换

display: none <-> block 瞬间完成,背景图预加载,肉眼无闪屏。

相关文章

5个CSS新功能,简单好用还超省时间

你是不是觉得自己CSS用得很熟了?Flex布局、Grid布局都玩得转,让元素居中更是小菜一碟。但CSS的世界一直在进步,很多新的特性能帮你省下大量写代码和调试的时间,解决以前需要JavaScript或...

JavaScript 的图片背景色提取开源库,能让图片和背景融为一体

图片提取主题色的工具库,可以实现一些酷炫的界面效果。本文不是 AI 生成,大部分文字都是我自己敲键盘,部分文字摘自 autohue.js 作者主页,请各位放心舒适阅读。autohue.js 简介aut...

JavaScript全解析——Map和Set数据结构和ES6模块化语法

Map和Set数据结构●ES6 新增的两种数据结构●共同的特点: 不接受重复数据Set数据结构●是一个 类似于 数组的数据结构●按照索引排列的数据结构创建 Set 数据结构语法: var s = ne...

大连网站建设:JavaScript 交互设计技巧

在大连网站建设领域,JavaScript 是实现丰富交互设计的核心技术,能显著提升用户体验。作为大连爱得科技的前端交互设计师,我积累了一些实用的 JavaScript 交互设计技巧,在此与大家分享。其...

独立站移动端加载慢?别只优化图片!这3个隐藏项才是真凶

上周有个做快时尚的客户吐槽:“PC端加载0.8秒,手机端要5.2秒,用户全跑了!”我一查,图片压缩了,CDN也开了,问题居然出在这三个地方——1. 字体文件太大很多独立站用了“好看的手写字体”,但字体...

可以用一行JS代码将PC网站移动化的“云适配”开源跨屏前端开发框架,将推出Amaze UI

我们之前报道过的“云适配”是一家可以用一行JS代码将PC网站移动化的技术公司。在他们用一行代码做适配的过程中,积累了一套跨屏的前端常用网页组件,而最近,他们想把这套组件开源出来,让前端开发者都可以免费...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。