用四种方法实现轮播图

1、css3动画实现的轮播图

实现原理如下:

1、设置大的div a)设置绝对定位,定位位置; b)设置图片展示出来的高度和宽度(height和width); c)设置overflow:hidden;设置超出部分隐藏;使得图片只能在这个框中显示;
2、设置小的div,将所有图片都包起来;宽度是所有图片的宽度;设置position:relative // position:absolute 来让它可以实现轮播的功能;必不可少。(自己的理解,设置大div和小div 的position,来让div浮起来,脱离文档流,就像云一样,可以飘了~)
3、给里面的图片设置float:left;向左浮动,可以让所有图片都在同一行;如果没有float:left;会导致图片轮播的时候出现空白;
4、加入动画;每次都向左偏移一个图片的宽度,即可实现图片轮播;
5、将第一张图片与最后一张图片设置成一样的,是为了实现视觉上的无缝连接;

代码:
在这里插入图片描述
在这里插入图片描述

2、bootstrap框架

知识点:(这里只写了一点点,具体的知识点 在菜鸟教程里可以看的很清晰哒~ 链接地址:https://www.runoob.com/bootstrap/bootstrap-carousel-plugin.html

通过data属性:使用data属性可以很容易控制轮播(Carousel)的位置;

  • 属性data-slide 接受关键字prev或next,用来改变幻灯片相对于当前位置的位置。

  • 使用data-slide-to来向轮播传递一个原始滑动索引,data-slide-to="2"将把滑块移动到一个特定的索引,索引从0开始计数。

代码:(直接往里带即可)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、用js方法实现(重头戏!!!)

实现原理:

1、自动轮播:

用setInterval(调用的函数,时间); 注意"调用的函数"处要写成函数名,不能带括号,带括号表示立即调用这个函数,不带则表示指向函数的指针。
被调用的函数 ,我的代码中呢,是xunhuan() ;不断地自加,也就是不断地往后循环,if语句实现的是:当图片到最后一张时,让其跳转到第一张。
调用的change1()函数呢,实际上就是实现轮播的较为核心的部分;先将所有图片,点点的样式设置为一样的,再对当前索引对应的图片,点点设置特别的样式。

2、鼠标移入,移出事件;

接下来的pointlist,以及两个for循环 里的事件监听事件,都是为了实现鼠标的移入,移出。
pointlist 点点;imgs 图片; spans 左右按钮。
注意:1)如果你想要通过点击事件来改变图片的移动时,就必须让鼠标移动到上面时设置清除计时器;因为如果不设置的话,当你通过点击事件改变它时,它自身也会自己改变,会出现混乱。2)当清除完后,鼠标移出后需要重新启动计时器,这时候不能再给它设置var
jishi;因为如果再加上var 的话,相当于重新又定义了一个变量,会有好几个计时器同时进行,会越来越快。

3、手动轮播 底下小点点的按钮控制

判断点击的是哪个点点,然后将它的索引值赋值给index,再通过调用change1()函数,来实现它的改变。
这里我是通过将点击元素的父元素来和所有的li进行比较,如果一样,则将对应的索引值赋值给index.

4、左右按钮的控制

让它实现自增或自减,然后调用change1()函数来改变样式。 其实这里的知识点和自动轮播里的知识点差不多。(从最后一张图片跳转到第一张图片,从第一张跳转到最后一张。)
无论是自动轮播,还是点击控制,都要加入change1() 以及index 来实现对样式的控制,从而实现轮播的效果。

代码:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、用jQuery实现

(与js用的方法一样,只是语法不同而已,与上面的js方法对比着看,很好理解哒~ 用完jQuery, 发现相比于js来说好方便呀~ ,记得用的时候要加上 引用jQuery,否则没有效果的~ )

代码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 27
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的HTML轮播图实现方法,使用了CSS和JavaScript: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>图片轮播</title> <style> /* 轮播图容器 */ #slider { width: 600px; height: 400px; position: relative; overflow: hidden; } /* 图片容器 */ #slider .slides { width: 2400px; height: 400px; position: absolute; top: 0; left: 0; } /* 图片 */ #slider .slides img { float: left; width: 600px; height: 400px; } /* 标题 */ #slider .title { position: absolute; bottom: 0; left: 0; width: 100%; height: 50px; background-color: rgba(0, 0, 0, 0.5); color: #fff; font-size: 24px; line-height: 50px; text-align: center; } /* 小方块容器 */ #slider .dots { position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%); display: flex; justify-content: center; align-items: center; } /* 小方块 */ #slider .dots span { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background-color: #fff; margin: 0 5px; cursor: pointer; } /* 当前小方块 */ #slider .dots span.active { background-color: #f00; } </style> </head> <body> <div id="slider"> <div class="slides"> <img src="img1.jpg" alt="图片1"> <img src="img2.jpg" alt="图片2"> <img src="img3.jpg" alt="图片3"> <img src="img4.jpg" alt="图片4"> </div> <div class="title"></div> <div class="dots"> <span class="active"></span> <span></span> <span></span> <span></span> </div> </div> <script> // 获取元素 var slider = document.getElementById('slider'); var slides = slider.querySelector('.slides'); var title = slider.querySelector('.title'); var dots = slider.querySelectorAll('.dots span'); // 初始化 var index = 0; // 当前图片的索引 var timer = null; // 定时器 show(); // 显示第一张图片 // 定时切换图片 timer = setInterval(function() { index++; if (index >= dots.length) { index = 0; } show(); }, 3000); // 鼠标悬停在小方块上时切换图片 for (var i = 0; i < dots.length; i++) { dots[i].index = i; dots[i].onmouseover = function() { index = this.index; show(); }; } // 显示当前图片 function show() { slides.style.marginLeft = -index * 600 + 'px'; title.innerHTML = slider.querySelectorAll('img')[index].getAttribute('alt'); for (var i = 0; i < dots.length; i++) { dots[i].className = ''; } dots[index].className = 'active'; } </script> </body> </html> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值