简单JS轮播图

简单的轮播图效果

 <body>
    <div id="slider" class="slider">
      <ul>
        <li class="ax">
          <a href="#">
            <img src="./img/01.jpg" alt="" />
            <p>这是第1张图片的文字说明</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="./img/02.jpg" alt="" />
            <p>这是第2张图片的文字说明</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="./img/04.jpg" alt="" />
            <p>这是第3张图片的文字说明</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="./img/4.jpg" alt="" />
            <p>这是第4张图片的文字说明</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="./img/5.jpg" alt="" />
            <p>这是第5张图片的文字说明</p>
          </a>
        </li>
        <li>
          <a href="#">
            <img src="./img/6.jpg" alt="" />
            <p>这是第6张图片的文字说明</p>
          </a>
        </li>
      </ul>
      <!--箭头-->
      <div class="arrow">
        <span id="arrow-left" class="arrow-left">&lt;</span>
        <span id="arrow-right" class="arrow-right">&gt;</span>
      </div>
    </div>
 <style>
      * {
        margin: 0;
        padding: 0;
        list-style: none;
      }

      img {
        display: block;
      }

      .slider {
        height: 470px;
        width: 590px;
        margin: 100px auto;
        position: relative;
        overflow: hidden;
      }

      .slider li {
        position: absolute;
        /* 每个图片的li设置隐藏 */
        display: none;
      }

      .slider li:first-child {
        /* 给第一张图片设置显示 */
        display: block;
      }

      /*文字部分的样式*/

      .slider li p {
        position: absolute;
        width: 100%;
        padding: 10px 0;
        text-indent: 2em;
        background-color: rgba(0, 0, 0, 0.6);
        bottom: 0;
        left: 0;
        font-size: 18px;

        /*给文字设置位移到底部去*/
        transform: translate3d(0, 100%, 0);
        /*添加过渡*/
        transition: all 0.8s;
      }

      /*当前展示li 下的文字样式*/

      .slider li.ax p {
        /*文字位移到0的位置,正常显示*/
        transform: translate3d(0, 0, 0);
      }

      .slider li a {
        color: #fff;
      }

      .arrow {
        display: none;
      }

      .slider:hover .arrow {
        display: block;
      }

      .arrow-left,
      .arrow-right {
        font-family: 'SimSun', '宋体';
        width: 30px;
        height: 60px;
        background-color: rgba(0, 0, 0, 0.1);
        position: absolute;
        top: 50%;
        margin-top: -30px;
        cursor: pointer;
        text-align: center;
        line-height: 60px;
        color: #fff;
        font-weight: 700;
        font-size: 30px;
      }

      .arrow-left:hover,
      .arrow-right:hover {
        background-color: rgba(0, 0, 0, 0.5);
      }

      .arrow-left {
        left: 0;
      }

      .arrow-right {
        right: 0;
      }
    </style>
  <script>
      // 获取左右箭头的节点对象
      var spanLeft = document.getElementById('arrow-left')
      var spanRight = document.getElementById('arrow-right')
      // 获取li的节点
      var divobj = document.getElementById('slider')
      var liobj = divobj.firstElementChild.children
      // 设置定时器
      var times = ''
      // 声明两个变量分别为当前的li的索引,及后一张li的索引都为零
      var index = 0
      var prev = 0
      // 当点击左箭头时把当前图片的索引值赋给下张图片,让当前图片的索引自减
      spanLeft.onclick = function () {
        prev = index
        index--
        // 判断是否是第一张图片,如果是让它再点击后跳到最后一张图片
        if (index < 0) index = liobj.length - 1
        change()
      }
      // 右点击事件同理(左点击事件)
      spanRight.onclick = function () {
        prev = index
        index++
        if (index == liobj.length) index = 0
        change()
      }
      // 自动播放
      function outplay() {
        times = setInterval(() => {
          spanRight.onclick()
        }, 2000)
      }
      outplay()
      divobj.onmouseover = function () {
        clearInterval(times)
      }
      divobj.onmouseout = function () {
        outplay()
      }

      function change() {
        // 1、 此处主要是让当前得li添加一个ax类,让后一li删除ax类,(让下方的文字显示)
        // 2、让当前li显示图片
        liobj[index].classList.add('ax')
        liobj[index].style.display = 'block'
        liobj[index].style.opacity = 1
        liobj[prev].classList.remove('ax')
        liobj[prev].style.opacity = 0
      }
    </script>
PC:个人计算机Personal Computer   ·CPU:中央处理器Central Processing Unit   ·CPU Fan:中央处理器的“散热器”(Fan)   ·MB:主机板MotherBoard   ·RAM:内存Random Access Memory,以PC-代号划分规格,如PC-133,PC-1066,PC-2700   ·HDD:硬盘Hard Disk Drive   ·FDD:软盘Floopy Disk Drive   ·CD-ROM:光驱Compact Disk Read Only Memory   ·DVD-ROM:DVD光驱Digital Versatile Disk Read Only Memory   ·CD-RW:刻录机Compact Disk ReWriter   ·VGA:显示卡(显示卡正式用语应为Display Card)   ·AUD:声卡(声卡正式用语应为Sound Card)   ·LAN:网卡(网卡正式用语应为Network Card)   ·MODM:数据卡或调制解调器Modem   ·HUB:集线器   ·WebCam:网络摄影机   ·Capture:影音采集卡   ·Case:机箱   ·Power:电源   ·Moniter:屏幕,CRT为显像管屏幕,LCD为液晶屏幕   ·USB:通用串行总线Universal Serial Bus,用来连接外围装置   ·IEEE1394:新的高速序列总线规格Institute of Electrical And Electronic Engineers   ·Mouse:鼠标,常见接口规格为PS/2与USB   ·KB:键盘,常见接口规格为PS/2与USB   ·Speaker:喇叭   ·Printer:打印机   ·Scanner:扫描仪   ·UPS:不断电系统   ·IDE:指IDE接口规格Integrated Device Electronics,IDE接口装置泛指采用IDE接口的各种设备   ·SCSI:指SCSI接口规格Small Computer System Interface,SCSI接口装置泛指采用SCSI接口的各种设备   ·GHz:(中央处理器运算速度达)Gega赫兹/每秒   ·FSB:指“前端总线(Front Side Bus)”频率,以MHz为单位   ·ATA:指硬盘传输速率ATAttachment,ATA-133表示传输速率为133MB/sec   ·AGP:显示总线Accelerated Graphics Port,以2X,4X,8X表示传输频宽模式   ·PCI:外围装置连接端口Peripheral Component Interconnect   ·ATX:指目前电源供应器的规格,也指主机板标准大小尺寸   ·BIOS:硬件(输入/输出)基本设置程序Basic Input Output System   ·CMOS:储存BIOS基本设置数据的记忆芯片Complementary Metal-Oxide Semiconductor   ·POST:开机检测Power On Self Test   ·OS:操作系统Operating System   ·Windows:窗口操作系统,图形接口   ·DOS:早期文字指令接口的操作系统   ·fdisk:“规划硬盘扇区”-DOS指令之一   ·format:“硬盘扇区格式化”-DOS指令之一   ·setup.exe:“执行安装程序”-DOS指令之一   ·Socket:插槽,如CPU插槽种类有SocketA,Socket478等等   ·Pin:针脚,如ATA133硬盘排线是80Pin,如PC2700内存模块是168Pin   ·Jumper:跳线(短路端子)   ·bit:位(0与1这两种电路状态), 计算机数据最基本的单位   ·Byte:字节,等于8 bit(八个位的组合,共有256种电路状态),计算机一个文字以8 bit来表示   ·KB:等于1024 Byte   ·MB:等于1024 KB   ·GB:等于1024 MB
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值