HTML+CSS +JS 轮播图

  1 <!DOCTYPE html>
  2 <html>
  3     <head>
  4         <meta charset="UTF-8">
  5         <title>轮播图</title>
  6         <style>
  7             #container{
  8                 width: 450px;
  9                 height: 270px;
 10                 margin: 0 auto;
 11                 margin-top: 100px;
 12                 position: relative;
 13                 overflow: hidden;
 14             }
 15
 16             #pic{
 17                 width: 3150px;
 18                 height: 270px;
 19                 position: absolute;
 20                 z-index: 1;
 21             }
 22             /*图片大小*/
 23             #pic img{
 24                 float: left;
 25                 width: 450px;
 26                 height: 270px;
 27             }
 28
 29             #pre{
 30                 width: 37px;
 31                 height: 63px;
 32                 background: url(../img/L1.png);
 33                 position: absolute;
 34                 top: 120px;
 35                 left: 5px;
 36                  cursor: pointer;
 37                  z-index: 10;
 38             }
 39
 40             #pre:hover{
 41                 background: url(../img/L2.png);
 42             }
 43
 44             #next{
 45                 width: 37px;
 46                 height: 63px;
 47                 background: url(../img/R1.png);
 48                 position: absolute;
 49                 top: 120px;
 50                 right: 5px;
 51                 cursor: pointer;
 52                 z-index: 10;
 53             }
 54
 55             #next:hover{
 56                 background: url(../img/R2.png);
 57             }
 58
 59             #circle .first{
 60                 background-color: darkgrey;
 61             }
 62
 63             #circle{
 64                 position: absolute;
 65                 top: 240px;
 66                 left: 130px;
 67                 z-index: 10;
 68                 height: 40px;
 69                 z-index: 2;
 70             }
 71
 72             #circle span{
 73                 display: inline-block;
 74                 width: 20px;
 75                 height: 20px;
 76                 border-radius: 10px;
 77                 background-color: white;
 78                 margin-left: 8px;
 79             }
 80         </style>
 81     </head>
 82     <body>
 83         <div id="container">
 84             <div id="pic">
 85                 <img src="img/1.jpg" alt=""/>
 86                 <img src="img/2.jpg" alt=""/>
 87                 <img src="img/3.jpg" alt="3"/>
 88                 <img src="img/4.jpg" alt=""/>
 89                 <img src="img/5.jpg" alt=""/>
 90                 <img src="img/6.jpg" alt=""/>
 91                 <img src="img/7.jpg" alt=""/>
 92             </div>
 93             <div id="pre"></div>
 94             <div id="next"></div>
 95             <div id="circle">
 96                 <span class="first"></span>
 97                 <span></span>
 98                 <span></span>
 99                 <span></span>
100                 <span></span>
101                 <span></span>
102                 <span></span>
103             </div>
104         </div>
105
106         <script>
107             //索引值:控制全局
108             var index = 0;
109             var pic = document.getElementById("pic");
110             var pre = document.getElementById("pre");
111             var next = document.getElementById("next");
112
113             ////切换下一张图片
114             function next_pic () {
115                 index++;
116                    if(index == 7){
117                        index = 0;
118                    }
119                    pic.style.left = -450*index + "px";
120                 showCurrentCircle();
121             }
122
123             //切换上一张图片
124             function pre_pic () {
125                 index--;
126                    if(index == -1){
127                        index = 6;
128                    }
129                    pic.style.left = -450*index + "px";
130                    showCurrentCircle();
131             }
132
133             //点击下一张照片的事件
134             next.onclick = function () {
135                    next_pic();
136                }
137
138             //点击上一张照片的事件
139             pre.onclick = function () {
140                 pre_pic();
141             }
142
143             var timer = null;
144             //无限计时器,自动循环播放照片
145             function autoPlay () {
146                 timer = setInterval(function () {
147                     //调用
148                     next_pic();
149                 },2000);
150                }
151             //调用
152             autoPlay();
153
154             var container = document.getElementById("container");
155             //鼠标移入图片范围,移除计时器,图片自动轮播停止
156             container.onmouseenter = function () {
157                    clearInterval(timer);
158             }
159             ////鼠标离开图片范围,计时器重启,图片自动轮播
160             container.onmouseleave = function () {
161                 autoPlay();
162             }
163
164             var circle = document.getElementsByTagName("span");
165             //下方原点颜色跟随图片切换
166             function showCurrentCircle () {
167                 //清除已经轮播过的圆点类
168                 for(var i = 0; i < circle.length; i++){
169                     circle[i].className = "";
170                     console.log(i)
171                 }
172                 //再将原本的圆点类名赋给当前所轮播到的圆点
173                 circle[index].className = "first";
174             }
175
176             //let:类似闭包效果,
177             for (let i = 0; i < circle.length; i++){178                 circle[i].onclick = function () {
179                     pic.style.left = -450*i + "px";
180                        index = i;
181                        showCurrentCircle();
182                 }
183             }
184         </script>
185     </body>
186 </html>

效果图如上:

原文地址:https://www.cnblogs.com/wcx-20151115-hzz/p/10098483.html

时间: 2024-08-13 19:50:06

HTML+CSS +JS 轮播图的相关文章

js+html+css实现轮播图

首先先把轮播图的结构搭建起来(html),代码如下:  结构可自行搭建,结构搭建完接着就是用css去进行修饰美化   此时的ul是没有给它设置固定的宽和高的,高可以先设置,宽不能,等下让图片一张接一张一的动起来,实际上是改变了ul的left值,ul的宽可以通过图片(li)的宽 乘以 图片数量即可得到,但是不能写死,所以ul的宽我们用js去获取设置,一起看下现在的效果 好了,结构已经搭建完了,现在只是静态的,我们需要用js去让它动起来,我们先获取html中需要用到的元素并把它存给变量,这里我事先存

用 CSS 做轮播图

对于用 css 实现一个轮播图的缘由,是那时候刚开始接触前端,完全还不懂 js.但是有一个项目(就是一个用来应付面试的作品)需要做一个轮播的效果,当时第一反应就是用 css3 自定义动画 -webkit-animation.做出来的效果自己觉得还可以,唯一的不足就是鼠标点击切换 banner 图和指定到某个图.如果项目中不需要切换变换图片的需求,用 css3 做,何尝不是一种办法.不多说,先上代码: html 代码如下: <div class="test"> <a h

基于css制作轮播图的部分效果

在轮播图中,我们可以通过鼠标在特定位置上的滑动来实现元素背景的改变.通常在制作轮播图时,我们首先想到的是js中的交互.可是,如果我们无法使用js,只能单纯的靠css又该如何实现这一效果呢?下面,本人将向大家介绍一种最近实验出来的一种方法. 在介绍这种方法之前,本人觉得对于css中的某些伪类选择器有必要进行进一步的分析. hover这个伪类选择器表示的是当鼠标移动到元素上时元素的反应.这一特性与js中的mousemove事件十分的相近,那么其是不是可以被近视地看做该事件呢?下面我们来做一个例子:

使用css实现轮播图

使用css3实现图片轮播 前言:实现图片轮播的方式有很多种 ,例如js ,css 等等. 本文主要讲述使用纯css3实现轮播图 工具介绍: 使用的编辑器: Hbuilder 进入正题 html代码: <div id="slide_show"> <div id="photos"> <!-- 作者:JavaBuild 时间:2018-10-21 描述:轮播图 --> <img id="first_slide_photo

JS 轮播图(无缝连接的轮播图实现,含代码供参考)

需求:实现轮播图,图片无缝切换,自动播放. 实现效果: 思考一下:在图片列表后面多加一张图片,这张图片是第一张图片(为了确保无缝衔接).图片就是平铺放在一个pic里面的,每次移动就是改变的pic的left值. 来撸代码~~.所有的代码放在最后面,这里只讲一些重要的方法: 为防止懵逼:先贴出封装函数move()的代码供参考 function move(ele, attr, speed, target, callback){ //获取当前的位置 //从左往右进行移动 --- current<targ

纯css实现轮播图

轮播图的实现原理其实是比较简单的 举个例子 <div class="main"> <div class="div-main"></div> </div> main的宽度是100px div-main的宽度是500px 我们用js控制div-main往左或往右移动,这样就实现了轮播,简单把 好了,先介绍个 css3的api animation: myfirst 5s linear 2s infinite alternat

第六十八天 js轮播图

1.浮动与定位结合使用 浮动与相对定位 //1.两者均参与布局 //2.主浮动布局,相对布局辅助完成布局微调 //3.相对定位布局微调不同于盒模型布局微调,相对定位布局不影响盒子原有位置,就会影响兄弟盒子布局 浮动与绝对定位 // 1.只保留绝对定位布局 // 2.脱离文档流的盒子宽可以交于内部撑开 2.小米更新数据案例 默认活跃状态 1.将初始的li设置一个active类名(拥有该类名就拥有活跃状态表现的属性)] 更改活跃状态 let active_index = 0; // 活跃状态的索引

原生JS轮播图

1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>轮播图</title> 6 </head> 7 <style> 8 *{ 9 margin:0px; 10 padding:0px; 11 } 12 13 li{ 14 list-style: none; /*取消li默认的前缀*/ 15 } 16 17

根据js轮播图原理写出合理的结构与样式、并实现js交互效果

在JS中,能用 . 的地方一般都可以用 [ ] 取代 index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>