html轮播图思路,轮播图思路以及用到的知识点

轮播图思路

轮播图思路:

1.首先所有的图片都是放在一个div中让它叠加起来的,设置层级让当前图片出现在最上面

2.为每个底部圆点按钮添加点击事件

3.用时间间隔函数让轮播图每隔两秒自动更新

4.鼠标移入事件和鼠标移除事件

5.添加左右点击事件,

css部分

//css部分

*{

margin:0;

padding:0;

list-style: none;

font-family: "微软雅黑";

}

.banner{

width:590px;

height:470px;

position:relative;

margin:0 auto;

}

.bannerImg{

width:590px;

height:470px;

position:relative;

}

.bannerImg a{

display:block;

width:590px;

height:470px;

position:absolute;

left:0px;

top:0px;

}

.items{

width:150px;

height:16px;

position:absolute;

left: 200px;

bottom: 20px;

z-index: 999;

}

.items li{

height:16px;

width:16px;

float:left;

margin-right: 8px;

background:#fff;

text-align: center;

line-height: 16px;

border-radius: 50%;

}

HTML部分

//html部分

<

js部分

//js部分

var num = 0 ;

var Img = document.getElementsByClassName("bannerImg")[0].getElementsByTagName("a");//获取图片 获取类名和id时需要加[] 表示下标

var li = document.getElementsByTagName("li");//获取数字12345

var banner = document.getElementsByClassName("banner")[0];//获取放图片的整个盒子

function bannerAuto(adress) {

for (var i = 0; i < Img.length; i++) { //循环是让每张图片和li全都有个默认状态,层级为0,背景为白色

Img[i].style.zIndex = "0";

li[i].style.background ="#fff";

};

Img[num].style.zIndex ="1"; //让当前的图片层级为1,背景为粉色

li[num].style.background ="pink";

if(adress =="right"){ //判断图片是从左往右的顺序还是从右往左

num++;

if(num>=Img.length){

num=0;

}

}else if(adress =="left"){

num--;

if(num<0){

num=Img.length-1;

}

}

}

var move=setInterval(function(){ //给轮播图添加时间函数

bannerAuto("right") //right轮播图是从左往右间隔两秒刷新一次

},2000);

for (var i = 0; i < li.length; i++) {

li[i].index = i; //存放li的下标

li[i].onclick = function(){

for (var j = 0; j < Img.length; j++) {

Img[j].style.zIndex = "0"; //当点击li时先让所有的图片层级为0,li背景为白色

li[j].style.background = "#fff";

};

this.style.background="pink"; //this指当前点击的li,让当前点击的图片层级为1,li的背景为粉色

Img[this.index].style.zIndex= "1";

num = this.index; //关联 点击的下标和num值,也就是自动轮播的下标

}

};

//鼠标移入和鼠标移除事件

banner.onmouseover =function (){

clearInterval(move); //当鼠标移到盒子上时清楚轮播图的时间函数,让图片停止播放

};

banner.οnmοuseοut=function() { //当鼠标移开时继续执行轮播图的时间函数

move=setInterval(function(){ //setiInterval后面要加方法

bannerAuto("right")

},2000);

};

//左右两边单击事件

left.οnclick=function(){ //单击左边执行left向左轮播的函数

bannerAuto("left")

};

right.οnclick=function(){

bannerAuto("right") 单击右边执行left向右轮播的函数

}

用到的知识点

setInterval()

onmouseover

onmouseout

for循环

onclick

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现轮播图思路通常有以下几步: 1. 准备轮播图HTML结构和CSS样式。 2. 使用JavaScript获取轮播图的DOM节点,并初始化轮播图的一些参数,比如轮播图的宽度、滑动速度、间隔时间等。 3. 编写事件监听器,监听轮播图前进和后退的按钮点击事件,以及自动轮播的定时器。 4. 在事件监听器中编写轮播图的滑动逻辑,比如用CSS3的transform属性实现轮播图的滑动效果。 5. 处理轮播图的边界问题,比如当轮播图到达最后一张时,要自动跳转到第一张。 6. 可选:为轮播图添加指示器或者控制按钮,让用户可以手动切换轮播图。 具体实现代码可以参考以下示例: HTML: ```html <div class="carousel"> <ul class="carousel-list"> <li><img src="image1.jpg"></li> <li><img src="image2.jpg"></li> <li><img src="image3.jpg"></li> </ul> <div class="prev-btn"><</div> <div class="next-btn">></div> </div> ``` CSS: ```css .carousel { position: relative; overflow: hidden; } .carousel-list { position: relative; width: 300%; left: 0; transition: left 0.5s; } .carousel-list li { float: left; width: 33.33%; } .prev-btn, .next-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; line-height: 40px; text-align: center; cursor: pointer; background-color: rgba(0, 0, 0, 0.5); color: #fff; } .prev-btn { left: 0; } .next-btn { right: 0; } ``` JavaScript: ```javascript var carousel = document.querySelector('.carousel'); var carouselList = carousel.querySelector('.carousel-list'); var prevBtn = carousel.querySelector('.prev-btn'); var nextBtn = carousel.querySelector('.next-btn'); var slideWidth = carousel.clientWidth / 3; var currentIndex = 0; // 初始化轮播图参数 carouselList.style.width = slideWidth * 3 + 'px'; // 监听前进和后退按钮点击事件 prevBtn.addEventListener('click', function() { currentIndex = Math.max(currentIndex - 1, 0); carouselList.style.left = -slideWidth * currentIndex + 'px'; }); nextBtn.addEventListener('click', function() { currentIndex = Math.min(currentIndex + 1, 2); carouselList.style.left = -slideWidth * currentIndex + 'px'; }); // 自动轮播 setInterval(function() { currentIndex = (currentIndex + 1) % 3; carouselList.style.left = -slideWidth * currentIndex + 'px'; }, 2000); ``` 这是一个简单的轮播图实现,具体实现方式会因需求而异,但基本思路都是相似的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值