前端响应式轮播图

以下是使用 HTML、CSS 和 JavaScript 生成响应式轮播图的示例代码。

HTML:

<div class="slideshow-container">
  <div class="slide">
    <img src="image1.jpg">
  </div>
  <div class="slide">
    <img src="image2.jpg">
  </div>
  <div class="slide">
    <img src="image3.jpg">
  </div>
  <button class="prev">❮</button>
  <button class="next">❯</button>
</div>

CSS:

/*轮播图容器 */
.slideshow-container {
  max-width: 1000px;
  position: relative;
  margin: auto;
}

/* 默认情况下隐藏图片 */
.slide {
  display: none;
}

/* 上一个和下一个按钮 */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  margin-top: -22px;
  padding: 16px;
  color: white;
  font-weight: bold;
  font-size: 18px;
  transition: 0.5s ease;
  border-radius: 0 3px 3px 0;
}

/* 将“下一个按钮”放在右侧 */
.next {
  right: 0;
  border-radius: 3px 0 0 3px;
}

/*悬停时,添加带有一点透视效果的黑色背景色 */
.prev:hover, .next:hover {
  background-color: rgba(0,0,0,0.8);
}

.text {
  color: #f2f2f2;
  font-size: 15px;
  padding: 8px 12px;
  position: absolute;
  bottom: 8px;
  width: 100%;
  text-align: center;
}


.numbertext {
  color: #f2f2f2;
  font-size: 12px;
  padding: 8px 12px;
  position: absolute;
  top: 0;
}


.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.active, .dot:hover {
  background-color: #717171;
}

.fade {
  animation-name: fade;
  animation-duration: 1.5s;
  animation-fill-mode: both;
}

@keyframes fade {
  from {
    opacity: 0.4;
  }
  to {
    opacity: 1;
  }
}

JavaScript:

// 获取所有幻灯片
var slides = document.querySelectorAll('.slide');

// 获取上一个和下一个按钮
var prevButton = document.querySelector('.prev');
var nextButton = document.querySelector('.next');


var dots = document.querySelectorAll('.dot');

// 将当前幻灯片设置为第一张幻灯片
var currentSlide = 0;

// 显示第一张图片
slides[currentSlide].style.display = "block";

// 给按钮添加事件监听
prevButton.addEventListener('click', function(){
 
  slides[currentSlide].style.display = "none";
  

  currentSlide--;
  
  
  if(currentSlide < 0)
    currentSlide = slides.length - 1;
    
 
  slides[currentSlide].style.display = "block";
});


nextButton.addEventListener('click', function(){

  slides[currentSlide].style.display = "none";
  

  currentSlide++;
  
 
  if(currentSlide >= slides.length)
    currentSlide = 0;
  
  slides[currentSlide].style.display = "block";
});


dots.forEach(function(dot, index){
  dot.addEventListener('click', function(){

    slides[currentSlide].style.display = "none";
    

    currentSlide = index;
    

    slides[currentSlide].style.display = "block",
    

    dots.forEach(function(dot){
      dot.classList.remove('active');
    });
    

    dots[currentSlide].classList.add('active');
  });
});

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值