当前位置: 首页 > news >正文

【HTML5】显示-隐藏法 实现网页轮播图效果

【HTML5】显示-隐藏法 实现网页轮播图效果

实现思路:先将所有图片在页面中设置好,然后给放置图片的元素li添加display:none属性将其隐藏,然后通过js获取到放置图片的元素li,再一个一个的给li元素添加display:block属性将其显示出来,从而达到轮播图的效果。

1.页面布局

(1)页面中主要使用相对定位和绝对定位将左右按钮和滚动标签按钮设置到图片上,相关代码如下:
<--页面设置-->
<div class="div1"><div class="container"><div class="content"><div class="ads"><ul class="ads-list"><li class="show"><a href="###"><img src="./images/ad1.avis" /></a></li><li><a href="###"><img src="./images/ad2.avis" /></a></li><li><a href="###"><img src="./images/ad3.avis" /></a></li></ul><div class="ads-btn"><span class="active">1</span><span>2</span><span>3</span></div><!--&lt;小于 &gt;大于  &nbsp;空格 --><a href="javascript:;" class="btn-left btn">&lt;</a><a href="javascript:;" class="btn-right btn">&gt;</a></div></div></div></div>
(2)对应的css样式如下:
*{margin: 0;padding: 0;box-sizing: border-box;
}
.div1{background-color: aliceblue;
}
a {/* 设置字体颜色 */color: #172c45;/* 取消a标签的下划线 */text-decoration: none
}li {/* 取消li前面的图标 */list-style: none
}/* 公共样式 */
.container {width: 1100px;/* 盒子模型 */margin: 0 auto;height: 100%;border: 1px solid red;
}
content {border: 1px solid yellow;display: flex;justify-content: space-between;
}.ads {/* 父容器设置为弹性盒子之后,可以使用该属性设置弹性项目所占比例 */flex: 1;border: 2px solid fuchsia;position: relative;
}/* 3.轮播图和切换按钮 */.ads-list {width: 100%;height: 100%;
}.ads-list li img {/* 图片将会扩展来填满其父元素的宽度 */width: 100%;
}/* 轮播图隐藏和显示 */
.ads-list li {display: none;
}.ads-list .show {display: block;
}/* 页码标签 */
.ads-btn {width: 100px;height: 10px;position: absolute;bottom: 10px;left: 50%;margin-left: -50px;display: flex;justify-content: space-between;
}.ads-btn span {background-color: #007d4f;/* 文本首行缩进 */text-indent: -99999px;border-radius: 4px;width: 30px;
}.ads-btn .active {background-color: white;
}/* 换页按钮 */
.btn {width: 30px;height: 30px;position: absolute;top: 50%;margin-top: -15px;font-size: 30px;border-radius: 50%;background-color: #007d4f;color: white;text-align: center;line-height: 30px;
}.btn-left {left: 10px;
}.btn-right {right: 10px;
}
(3)js代码如下:
window.addEventListener("load", function () {ads();
});
function ads(){console.log("这是⼴告轮播图交互");// 第⼀步:获取元素let oAd = document.querySelector(".container .ads");let aLi = document.querySelectorAll('.content .ads-list li');let aBtn = document.querySelectorAll('.content .ads-btn span');let oBtn_left = document.querySelector('.content .ads .btn-left');let oBtn_right = document.querySelector('.content .ads .btn-right');let index = 0; // 初始索引,从第⼀张图⽚开始轮播let timer = null;// 第二步:初始化,默认第一张图片显示 第一个按钮为焦点状态aLi[index].classList.add("show");aBtn[index].classList.add("active");// 第三步: 给按钮添加点击事件for (let i = 0; i < aBtn.length; i++) {aBtn[i].onclick = function () {index = i;play();}}function play() {//先将所有按钮移除点击时的样式for (let j = 0; j < aBtn.length; j++) {aBtn[j].classList.remove("active");aLi[j].classList.remove("show");}// 再将点击的按钮设置激活样式aBtn[index].classList.add("active");aLi[index].classList.add("show");}// 第四步: 自动播放function autoplay() {index++;if (index >= aBtn.length) {index = 0;}play();}timer = setInterval(autoplay, 3000);//  悬停/离开  停止/播放oAd.onmouseover = function(){clearInterval(timer);}oAd.onmouseout = function(){timer = setInterval(autoplay, 3000);}oBtn_left.onclick = function(){index--;if(index<0){index = aBtn.length-1;}play();}oBtn_right.onclick = function(){autoplay();}
}
(4)运行效果

在这里插入图片描述

http://www.xdnf.cn/news/304039.html

相关文章:

  • 【LDM】视觉自回归建模:通过Next-Scale预测生成可扩展图像(NeurIPS2024最佳论文阅读笔记与吃瓜)
  • 第七节:图像基本操作-图像属性获取 (尺寸、通道数、数据类型)
  • C++【STL】(1)string
  • 基于STM32、HAL库的W25X40CLSNIG NOR FLASH存储器驱动应用程序设计
  • 【Linux系统】线程安全
  • unix 详解
  • cuda多维线程的实例
  • 纷析云开源财务软件:重新定义企业财务自主权
  • 《Python星球日记》第35天:全栈开发(综合项目)
  • 基于 Flask的深度学习模型部署服务端详解
  • Linux 工具
  • docker + K3S + Jenkins + Harbor自动化部署
  • Opentack基础架构平台运维
  • iPhone或iPad想要远程投屏到Linux系统电脑,要怎么办?
  • react-12父子组件间的数据传递(子传父)(父传子)- props实现
  • Axure :列表详情、列表总数
  • Spring Boot 3.x集成SaToken使用swagger3+knife4j 4.X生成接口文档
  • 开源与商业:图形化编程工具的博弈与共生
  • ExtraMAME:复古游戏的快乐“时光机”
  • 信息论01:从通信到理论的飞跃
  • 第七章,VLAN技术
  • Github 2025-05-06Python开源项目日报 Top10
  • Kotlin与Java在Android生态中的竞争与互补关系
  • RT-Thread自用记录(暂定)
  • 第四章-初始化Direct3D
  • 餐饮部绩效考核管理制度与综合评估方法
  • 【java】程序设计基础 八股文版
  • 开放的力量:新零售生态的共赢密码
  • 每日算法-250506
  • weapp-vite - 微信小程序工具链的另一种选择