记录轮播图

	<style>
		* {
			padding: 0;
			margin: 0;
		}
		.box {
			position: relative;
			margin: 100px auto;
			overflow: hidden;
			width: 600px;
		}
		.img-box {
			display: flex;
			width: 3000px;
			list-style: none;
		}
		.img-item {
			width: 600px;
			background-color: #02ffff;
			height: 600px;
			line-height: 600px;
			text-align: center;
		}
		.prev, .next {
			position: absolute;
			top: 50%;
			transform: translateY(-50%);
			background-color: rgba(0,0,0,.5);
			padding: 10px;
			border-radius: 50%;
			color: #ccc;
		}
		.prev {
			left: 10px;
		}
		.next {
			right: 10px;
		}
		.num-box {
			display: flex;
			position: absolute;
			left: 50%;
			transform: translateX(-50%);
			bottom: 20px;
		}
		.num-item {
			margin-right: 20px;
			background-color: rgba(0,0,0,.3);
			padding: 10px;
			border-radius: 50%;
		}
	style>
head>
<body>
	<div class="box">
		
		<ul class="img-box">
			<li class="img-item">1li>
			<li class="img-item">2li>
			<li class="img-item">3li>
			<li class="img-item">4li>
			<li class="img-item">5li>
		ul>

		
		<div class="prev">
			<span><span>
		div>
		<div class="next">
			<span>>span>
		div>

		<div class="num-box">
			<div class="num-item" data-index="0">1div>
			<div class="num-item" data-index="1">2div>
			<div class="num-item" data-index="2">3div>
			<div class="num-item" data-index="3">4div>
			<div class="num-item" data-index="4">5div>
		div>

	div>
body>
<script>
	const imgBox = document.querySelector('.img-box')
	const nextBtn = document.querySelector('.next')
	const prevBtn = document.querySelector('.prev')
	const numBox = document.querySelector('.num-box')
	const numList = document.querySelectorAll('.num-item')


  let currentIdx = 0
	let timer = null

  numList[currentIdx].style.backgroundColor = '#ccc'

  nextBtn.onclick = nextFun
  prevBtn.onclick = prevFun
  numBox.addEventListener('click', numClick)
  imgBox.addEventListener('mouseenter', stopAutoPlay)
  imgBox.addEventListener('mouseleave', autoPlay)


  // 开启自动播放
  autoPlay();

	function nextFun () {
    imgBox.style.transition = '1s'
    if (currentIdx === 4) {
      imgBox.style.transition = '0s'
      currentIdx = 0
		} else {
      ++currentIdx
		}
		imgBox.style.transform = `translateX(${-600 * currentIdx}px)`
  }

	function prevFun () {
    imgBox.style.transition = '1s'
    if (currentIdx === 0) {
      imgBox.style.transition = '0s'
      currentIdx = 4
		} else {
      --currentIdx
		}
    imgBox.style.transform = `translateX(${-600 * currentIdx}px)`
  }

  function numClick(evt) {
    imgBox.style.transition = '1s'
    numList[currentIdx].style.backgroundColor = ''
    const idx = evt.target.dataset.index
    if (!idx) return
    currentIdx = idx - 0
    numList[idx].style.backgroundColor = '#ccc'
    imgBox.style.transform = `translateX(${-600 * idx}px)`
  }

  // 循环播放
  function autoPlay() {
    timer = setInterval(nextFun, 1000);
  }

  // 关闭自动播放
  function stopAutoPlay() {
    // 清除定时器
    clearInterval(timer);
  }
script>

你可能感兴趣的:(笔记,javascript,前端)