js实现淡入淡出轮播图

news/2024/11/28 20:49:14/

1.图片淡入淡出自动轮播.
2.可以用按钮控制轮播.
效果图:
这里写图片描述
代码如下:
html+scc:

*{margin: 0;padding: 0;}html,body{width: 100%;}.container{position: absolute;top: 50%;left: 50%;transform: translate(-50%,-50%);width: 800px;height: 500px;overflow: hidden;}.list img{position: absolute;left: 0;top: 0;width: 800px;height: 500px;opacity: 0;z-index: 1;transition: all 1s;}.list img:first-child{opacity: 1;z-index: 2;}.buttons{position: absolute;left: 50%;bottom: 20px;margin-left: -90px;width: 180px;text-align: center;cursor: pointer;z-index: 2;}.buttons span{display: inline-block;width: 20px;height: 20px;margin-right: 5px;border-radius: 50%;background: #aaa;border: 1px solid #fff;}.buttons span:last-child{margin-right: 0;}.buttons .on{background: #000;}.arrow{display: none;position: absolute;top: 230px;width: 40px;height: 40px;background: rgba(0,0,0,0.4);font-size: 40px;font-weight: bold;text-align: center;cursor: pointer;color: #fff;z-index: 2;}.container:hover .arrow{display: block;}#pre{left: 0;}#next{right: 0;}</style>
</head>
<body>
<div id="container" class="container"><div id="list" class="list" ><img src="i/8绣春刀.jpg" alt="绣春刀"><img src="i/1当幸福来敲门.jpg" alt="当幸福来敲门"><img src="i/2蝙蝠侠黑暗骑士.jpg" alt="蝙蝠侠黑暗骑士"><img src="i/3后天.jpg" alt="后天"><img src="i/7无间道.jpg" alt="无间道"></div><div id="buttonGroup" class="buttons"><span index="0" class="on"></span><span index="1"></span><span index="2"></span><span index="3"></span><span index="4"></span></div>
</div>

js:

function $(id) {return document.getElementById(id);}var buttonGroup=$("buttonGroup"),buttons=buttonGroup.getElementsByTagName('span'),list=$("list"),imgs=list.getElementsByTagName('img'),flag=0,container=$("container"),timer;function render(index){for(var i=0;i<imgs.length;i++){imgs[i].style.opacity="0";imgs[i].style.zindex="1";}imgs[index].style.zindex="2";imgs[index].style.opacity="1";}function bt_listen(event){if (event.target&&event.target.tagName.toLowerCase()=='span') {var index=event.target.getAttribute('index');flag=index;render(flag);showButton();}}function showButton(){for(var i=0;i<buttons.length;i++){buttons[i].className=buttons[i].className.replace(/\s*on/,"");}buttons[flag].className+=" on";}function play(){timer=setInterval(function(){if (flag==4) {flag=0;}else{flag++;}render(flag);showButton();},3000);}function stop(){clearInterval(timer);}   function start(){buttonGroup.addEventListener('click',bt_listen,false);container.addEventListener('mouseenter',stop,false);container.addEventListener('mouseleave',play,false);play();}   start();

思路:
让所有的图片都position:absolute,显示在一个容器内,设置除了第一张图片之外的所有图片opcity:0;将要显示的图片z-index设置为2,其他都设置为1.flag用来记录当前的索引值。
render(index)将索引为index的图片显示.
showButton()通过flag值来渲染当前图片对应的按钮.
bt_listen()为按钮的监听函数,取出当前被点击按钮的index属性,然后用render()函数来渲染图片,再调用showButton()渲染按钮.
play()为自动轮播函数,设置setInterval,当flag=4时,重置为0,否则flag++,然后调用render和showButton.


http://www.ppmy.cn/news/665818.html

相关文章

Python3网络爬虫快速入门实战解析

转自&#xff1a;"https://blog.csdn.net/c406495762/article/details/78123502 Python版本&#xff1a; Python3.x 运行平台&#xff1a; Windows IDE&#xff1a; Sublime text3 文章目录 [toc]更多教程&#xff0c;请查看&#xff1a;https://cuijiahua.com/blog/spi…

JAVA从入门到放弃教程300章

该教程是我于2018年9月中旬在网络上收藏的&#xff0c;若原作者认为有版权冲突&#xff0c;请私我 目录 第1章 - java概述 实例001 输出“hello world”实例002 输出控制台实例003 输出由“*”组成的三角形实例004 输出符号表情 第2章 - eclipse开发工具 实例005 下载并运行e…

python 之 matplotlib

文章目录 1.NumPy Matplotlib1.1 下载所需要的包1.2 pyplot介绍 2.画图2.1 一般包含什么内容2.2 语法(没啥用)2.3 画图流程解释2.4 以折线图为例讲解 流程、基本语法(看这个就够了) 3. 各图示例3.1折线图 .plot()3.1.1 设置x、y轴坐标为字符串坐标轴添加名字图的名字3.1.2 绘制…

新冠知识图谱学习记录

新冠知识图谱构建与问题记录 文章目录 新冠知识图谱构建与问题记录开始前的安装工作问题(1)描述&#xff1a;shell可import&#xff0c;pycharm报no modul问题(2)描述&#xff1a;个别module飘红问题(3)描述&#xff1a;目前学习方向问题(4)描述&#xff1a;valueError问题(5)描…

日报(2019.7.4 -- 12.30)

7.4 使用ftp工具&#xff08;filezilla&#xff09;和ssh工具&#xff08;Xshell&#xff09;项目部署 7.8 10.191.1.2忽略大小写的后端项目配置 7.9 下载电子书和杂志 7.10 下载短视频和宣传片&#xff0c;整理前端的图片&#xff0c;ps测量图片的尺寸 7.11 整理一下上传资源的…

【新技能】将Python爬虫和情感分析结合起来,更快上手更快理解

本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者&#xff1a;Python之道 ( 想要学习Python&#xff1f;Python学习交流群&#xff1a;1039649593&#xff0c;满足你的需求&am…

Android可折叠标题栏实现|RecyclerView吸顶列表实现|CollapsingToolbarLayout折叠布局用法

篇章目标要点 此前看到一些app有着炫酷的可折叠的UI&#xff0c;心里想着如果哪一天我也可以自己动手实现这些美观的UI就好了。偶然中发现了安卓提供的Material Design的妙用&#xff0c;决定动手实现向往已久的可折叠标题栏。本文的主要是讲述Material Design组件中的Collaps…

PaddleHub人像分割模型:AI人像抠图及图像合成

点击上方“AI搞事情”关注我们 本项目根据DeepLabv3模型一键抠图示例&#xff0c;主要采用PaddleHub DeepLabv3模型(deeplabv3p_xception65_humanseg)和python图像处理库opencv、PIL等完成。在最新作中&#xff0c;作者通过encoder-decoder进行多尺度信息的融合&#xff0c;同时…