js实现循环切换滚动 按钮左右控制切换

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>跑马灯轮播图1</title>
   

     
     <style type="text/css">
.slider {
  width: 300px;
  overflow: hidden;
  position: relative;
}

.slides {
  display: flex;
  transition: transform 0.5s ease;
}

.slide {
  flex: 0 0 100%;
}

button {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
}

.prev {
  left: 0;
}

.next {
  right: 0;
}

     </style>


</head>

<body> 

<div class="slider">
  <div class="slides">
    <div class="slide">Slide 1</div>
    <div class="slide">Slide 2</div>
    <div class="slide">Slide 3</div>
  </div>
  <button class="prev">Prev</button>
  <button class="next">Next</button>
</div>

 
<script> 
 const slider = document.querySelector('.slider');
const slides = document.querySelector('.slides');
const prevBtn = document.querySelector('.prev');
const nextBtn = document.querySelector('.next');

let slideIndex = 0;

nextBtn.addEventListener('click', () => {
  slideIndex = (slideIndex + 1) % slides.children.length;
  updateSlidePosition();
});

prevBtn.addEventListener('click', () => {
  slideIndex = (slideIndex - 1 + slides.children.length) % slides.children.length;
  updateSlidePosition();
});

function updateSlidePosition() {
  slides.style.transform = `translateX(-${slideIndex * 100}%)`;
}

</script>
 
</body>
</html>

  • 7
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用CSS的`@keyframes`属性实现自动滚动表格,鼠标悬浮时停止,以及使用JavaScript实现点击按钮展开详情。下面是一个简单的示例代码: HTML代码: ```html <table class="scroll-table"> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> <th>详情</th> </tr> </thead> <tbody> <tr> <td>张三</td> <td>25</td> <td>男</td> <td><button class="detail-btn">查看详情</button></td> </tr> <tr> <td>李四</td> <td>30</td> <td>男</td> <td><button class="detail-btn">查看详情</button></td> </tr> <tr> <td>王五</td> <td>28</td> <td>女</td> <td><button class="detail-btn">查看详情</button></td> </tr> </tbody> </table> ``` CSS代码: ```css .scroll-table { border-collapse: collapse; width: 100%; table-layout: fixed; } .scroll-table th, .scroll-table td { border: 1px solid #ccc; padding: 10px; text-align: center; } .scroll-table th:last-child, .scroll-table td:last-child { width: 100px; } .scroll-table button { background-color: #ccc; color: #fff; border: none; padding: 5px 10px; cursor: pointer; } /* 实现自动滚动 */ .scroll-table tbody { animation: scroll 5s linear infinite; } @keyframes scroll { from { transform: translateY(0); } to { transform: translateY(-100%); } } /* 鼠标悬停时停止自动滚动 */ .scroll-table tbody:hover { animation-play-state: paused; } ``` JavaScript代码: ```javascript // 获取所有详情按钮 const detailBtns = document.querySelectorAll(".detail-btn"); // 循环绑定点击事件 detailBtns.forEach((btn) => { btn.addEventListener("click", (e) => { // 获取当前按钮所在的行 const tr = e.target.parentNode.parentNode; // 切换详情显示状态 tr.classList.toggle("show-detail"); }); }); ``` CSS代码中的`@keyframes`实现了自动滚动,`tbody`标签上设置了`animation`属性,让表格内容在5秒钟内从上往下滚动滚动完成后立即回到初始状态,然后重复这个过程。 鼠标悬停时,通过设置`animation-play-state`属性为`paused`来暂停自动滚动JavaScript代码中,获取所有的详情按钮循环绑定点击事件,点击时通过切换行的`show-detail`样式类来显示或隐藏该行的详情内容。需要在CSS中为`show-detail`样式类设置详情内容的样式。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值