HTML学习之轮播图
这可以说是一种非常简单的实现轮播图的方法了,由于时间仓促所以没写自动轮播部分。简单说一下原理吧,就是把所有图片堆叠在一个盒子里,设置所有图片的透明度为0,这样就把所有图片都隐藏了,第一张图片除外(第一张透明度设为1),当要切换到某张图片时,在把该图片的透明度设为1,而其他的图片透明度设为0,这样就实现了简单的轮播啦。
代码:
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8" />
- <title>淡入淡出轮播图</title>
- <!-- css样式 -->
- <style type="text/css">
- /*清除边距*/
- div,ul,li{
- margin: 0;
- padding: 0;
- }
- /*首先准备一个放图片的容器*/
- .container{
- width: 500px;
- height: 280px;
- position: relative;
- top: 100px;
- left: 30%;
- /*border: 1px solid #ccc;*/
- }
- /*图片样式*/
- .container img{
- position: absolute; /*把所有图片放在同一个位置*/
- width: 100%;
- transition-duration: 1s; /*设置过渡时间*/
- opacity: 0; /*把所有图片变透明*/
- }
- /*图片显示开关*/
- .container img.on{
- opacity: 1; /*用于显示图片*/
- }
- /*左右按钮 按钮用图片更好点,这里为了简便就用大于小于号*/
- .left, .right{
- position: absolute;
- top: 30%;
- width: 60px;
- height: 100px;
- line-height: 100px;
- background-color: #666;
- opacity: 0.5;
- text-align: center;
- font-size: 60px;
- color: #ccc;
- display: none; /*先隐藏按钮*/
- cursor: pointer; /*设置鼠标悬停时的样式*/
- }
- .left{
- left: 0;
- }
- .right{
- right: 0;
- }
- .container:hover .left, .container:hover .right{
- display: block; /*鼠标悬停才容器范围内时显示按钮*/
- }
- .left:hover, .right:hover{
- color: #fff;
- }
- /*焦点*/
- .container ul{
- position: absolute;
- bottom: 0;
- max-width: 500px;
- padding: 5px 200px;
- }
- .container ul li{
- list-style: none;
- float: left;
- width: 10px;
- height: 10px;
- border-radius: 50%;
- margin-left: 10px;
- background-color: #ccc;
- cursor: pointer;
- }
- .container ul li.active{
- background-color: #fff; /*焦点激活时的样式*/
- }
- </style>
- </head>
- <body>
- <div class="container">
- <!-- 图片 -->
- <!-- 先把第一张图片显示出来 -->
- <img class="on" src="img/1.jpg" />
- <img src="img/2.jpg" />
- <img src="img/3.jpg" />
- <img src="img/4.jpg" />
- <img src="img/5.jpg" />
- <!-- 左右按钮 -->
- <div class="left"><</div>
- <div class="right">></div>
- <!-- 焦点 -->
- <ul>
- <li class="active"></li>
- <li></li>
- <li></li>
- <li></li>
- <li></li>
- </ul>
- </div>
- <!-- js部分 -->
- <script type="text/javascript">
- //1、找到container下的所有img标签,li标签,左右按钮
- var aImgs = document.querySelectorAll('.container img');
- var aLis = document.querySelectorAll('.container li');
- var btnLeft = document.querySelector('.container .left');
- var btnRight = document.querySelector('.container .right');
- // //检验是否找到
- // console.log(aImgs);
- // console.log(aLis);
- // console.log(btnLeft);
- // console.log(btnRight);
- //点击事件
- //点击按钮图片切换
- var index = 0; //当前图片下标
- var lastIndex = 0;
- btnRight.onclick = function(){
- //记录上一张图片的下标
- lastIndex = index;
- //清除上一张图片的样式
- aImgs[lastIndex].className = '';
- aLis[lastIndex].className = '';
- index++;
- index %= aImgs.length; //实现周期性变化
- //设置当前图片的样式
- aImgs[index].className = 'on';
- aLis[index].className = 'active';
- }
- //左边按钮类似
- btnLeft.onclick = function(){
- //记录上一张图片的下标
- lastIndex = index;
- //清除上一张图片的样式
- aImgs[lastIndex].className = '';
- aLis[lastIndex].className = '';
- index--;
- if (index < 0) {
- index = aImgs.length - 1;
- }
- //设置当前图片的样式
- aImgs[index].className = 'on';
- aLis[index].className = 'active';
- }
- </script>
- </body>
- </html>
HTML学习之轮播图的更多相关文章
- JS学习笔记--轮播图效果
希望通过自己的学习收获哪怕收获一点点,进步一点点都是值得的,加油吧!!! 本章知识点:index this for if else 下边我分享下通过老师教的方式写的轮播图,基础知识实现: 1.css代 ...
- ionic3-ng4学习见闻--(轮播图完美方案)
ionic上 轮播图是最坑的插件了吧,各种bug和 问题. 事件也不好用.. 于是,我终于搞出来了一个完美的方案, 适用于,动态获取轮播图数据,自动循环播放,跳转其他页面回来后自动播放,手指触摸后自动 ...
- 03 uni-app框架学习:轮播图组件的使用
1.轮播图组件的使用 参照官方文档 2.在页面上加入这个组件 3.在页面中引去css样式 并编写样式 ps:upx单位是什么 简单来说 就相当于小程序中的rpx 是一个自适应的单位 会根据屏幕宽度自动 ...
- 用原生的javascript 实现一个无限滚动的轮播图
说一下思路:和我上一篇博客中用JQ去写的轮播图有相同点和不同点 相同点: 首先页面布局是一样的 同样是改变.inner盒子的位置去显示不同的图片 不同点: 为了实现无限滚动需要多添加两张重复的图片 左 ...
- [vuejs短文]使用vue-transition制作小小轮播图
提示 本文是个人的一点小笔记,用来记录开发中遇到的轮播图问题和vue-transition问题. 会不断学习各种轮播图添加到本文当中 也有可能会上线,方便看效果 开始制作 超简易呼吸轮播 简单粗暴的使 ...
- ReactNative新手学习之路04 组件化开发轮播图swiper支持安卓和IOS
react native 新手之路04 组件化开发轮播图swiper支持安卓和IOS npm install react-native-carousel --save git 地址Properties ...
- vue.js学习之better-scroll封装的轮播图初始化失败
vue.js学习之better-scroll封装的轮播图初始化失败 问题一:slider组件初始化失败 原因:页面异步获取数据很慢,导致slider初始化之后,数据还未获取到,导致图片还未加载 解决方 ...
- vue移动音乐app开发学习(三):轮播图组件的开发
本系列文章是为了记录学习中的知识点,便于后期自己观看.如果有需要的同学请登录慕课网,找到Vue 2.0 高级实战-开发移动端音乐WebApp进行观看,传送门. 完成后的页面状态以及项目结构如下: 一: ...
- <day006>bootstrap的简单学习 + 轮播图
任务1:bootstrap的简单学习 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta c ...
随机推荐
- UML类图详解和示例
ps:博客园markdown不能自动生成列表,更好的阅读体验可访问我的个人博客http://www.isspark.com/archives/UMLDescription UML类图概述 什么是UML ...
- set和push方法压入栈顶的值获取方法
向值栈里面放数据(储存的位置在root域里面) 向值栈放数据有多种方式,往往我们只用其中一种 1.set方法压栈 1)在Action中获取值栈对象,使用set()方法向值栈存放数据 ActionCon ...
- CF EDU 1101D GCD Counting 树形DP + 质因子分解
CF EDU 1101D GCD Counting 题意 有一颗树,每个节点有一个值,问树上最长链的长度,要求链上的每个节点的GCD值大于1. 思路 由于每个数的质因子很少,题目的数据200000&l ...
- 最短路算法 Dijkstra 入门
dijkstra算法 是一种单源点最短路算法求出一个点到其他所有点的最短路. 给你这样的一个图,需要求出1号点到其他点的最短距离是多少. 首先我们开一个数组 d[N],d[x] 代表着从起点出发到x点 ...
- 【Offer】[49] 【丑数】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 我们把只包含因子2.3和5的数称作丑数( Ugly Number).求按从小到大的顺序的第1500个丑数.例如,6.8都是丑数,但14不 ...
- 大型公司java架构师面试实战讲解高清视频教程 15课
目录: 01.面试必考之HashMap源码分析与实现02.探索JVM底层奥秘ClassLoader源码分析与案例讲解03.大型网站数据库瓶颈之数据库分库分表方案实践04.资料为图灵学院所有05.大型公 ...
- Vert.x Web之Router
Vert.x Web 是一系列用于基于 Vert.x 构建 Web 应用的构建模块. Vert.x Web 的大多数特性被实现为了处理器(Handler),因此您随时可以实现您自己的处理器.我们预计随 ...
- Redis小白入门系列
一.从NoSQL说起 NoSQL 是 Not only SQL 的缩写,大意为"不只是SQL",说明这项技术是传统关系型数据库的补充而非替代.在整个NoSQL技术栈中 MemCac ...
- eclipse搭建springmvc
https://www.cnblogs.com/qixing/p/qixing.html
- 超级密码(BFS)
Problem Description Ignatius花了一个星期的时间终于找到了传说中的宝藏,宝藏被放在一个房间里,房间的门用密码锁起来了,在门旁边的墙上有一些关于密码的提示信息: 密码是一个C进 ...