当前位置: 首页 > article >正文

JS轮播图实现自动轮播、悬浮停止轮播、点击切换,下方指示器与图片联动效果

代码:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .context{
            width: 600px;
            margin: 0 auto;
            text-align: center;
        }
        .context img{
            width: 600px;
            height: 300px;
        }
        .container{
            position: relative;
        }
        .yuan{
            width: 50px;
            height: 50px;
            position: absolute;
            right: 0;
            top: 43%;
            line-height: 46px;
            font-size: 28px;
            font-weight: bold;
            background-color: white;
            border: 1px solid black;
            border-radius: 50px;
            color: black;
            opacity: 0.5;
            display: none;
            cursor: pointer;
        }
        .leftyuan{
            width: 50px;
            height: 50px;
            position: absolute;
            left: 0;
            top: 43%;
            line-height: 46px;
            font-size: 28px;
            font-weight: bold;
            background-color: white;
            border: 1px solid black;
            border-radius: 50px;
            color: black;
            opacity: 0.5;
            display: none;
            cursor: pointer;
        }
        ul li{
            list-style: none;
            float: left;
            margin: 0 10px;
            width: 35px;
            height: 30px;
            line-height: 30px;
            background-color: #eeeeee;
            cursor: pointer;
        }
        ul{
            position: absolute;
            bottom: 0;
            left: 21%;
        }
        li:hover{
            background-color: #fea500
        }
        .orange{
            background-color: #fea500;
        }
    </style>
</head>
<body>
    <div class="context">  
        <div class="container">
            <img src="./image/1.jpg" alt="">
            <div class="yuan">></div>
            <div class="leftyuan"><</div>
            <ul>
                <li class="orange">1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
            </ul>
        </div>
        
        <!-- <button>上一张</button>
        <button>下一张</button> -->
       
    </div>
    
    <script>
        let btns = document.querySelectorAll('button')
        let simg = document.querySelector('img')
        let container = document.querySelector('.container')
        let yuan = document.querySelector('.yuan')
        let leftyuan = document.querySelector('.leftyuan')
        let li = document.querySelectorAll('ul li')
        let b=0
        li.forEach(item=>{
            item.onclick=function(){
                simg.src=`./image/${item.innerText}.jpg`
                jx(item.innerText)
            }
        })
        // 控制图片变化变量
        let d1=setInterval(djq,1000)
        function djq(){

            // clearInterval(d1)
            if(b==5){
                b=0
            }
            simg.src=`./image/${++b}.jpg`
            li.forEach(item=>{
                item.classList.remove('orange')
                if(b==item.innerHTML){
                    item.classList.add('orange')

                }
        })
            if(b==5){
                b=0
            }
        }
        function jx(c){
                b=c
             clearInterval(d1)
             
            simg.src=`./image/${b}.jpg`
            li.forEach(item=>{
                item.classList.remove('orange')
                if(b==item.innerHTML){
                    item.classList.add('orange')

                }
        })
            if(b==5){
                b=0
            }
        }
        yuan.onclick=function(){
           
            if(b>=5){
                b=0
            }
            simg.src=`./image/${++b}.jpg`
            li.forEach(item=>{
                item.classList.remove('orange')
                if(b==item.innerHTML){
                    item.classList.add('orange')
                }
            })
            
        }
        leftyuan.onclick=function(){
           
            if(b<=1){
                b=6
            }
            simg.src=`./image/${--b}.jpg`
            li.forEach(item=>{
                item.classList.remove('orange')
                if(b==item.innerHTML){
                    item.classList.add('orange')
                }
            })
        }
        container.onmouseenter= function(){
            
            clearInterval(d1)
            yuan.style.display='block'
            leftyuan.style.display='block'
            
        }
        container.onmouseleave= function(){
            // console.log('b');
            
            d1 =setInterval(djq,1000)
            yuan.style.display='none'
            leftyuan.style.display='none'
            
        }
        // btns[0].onclick=function(){
        //     if(b<=1){
        //         b=6
        //     }
        //     simg.src=`./image/${--b}.jpg`
            
        // }
        // btns[1].onclick=function(){
        //     if(b>=5){
        //         b=0
        //     }
        //     simg.src=`./image/${++b}.jpg`
            
        // }
        
    </script>
</body>
</html>

效果图:

注:需要自己找5张图片下载到image文件夹下,并且把图片名字改成1到5哦

如下图所示:


http://www.kler.cn/a/370432.html

相关文章:

  • C#,入门教程(02)—— Visual Studio 2022开发环境搭建图文教程
  • 【数据分享】1929-2024年全球站点的逐日平均气温数据(Shp\Excel\免费获取)
  • 如何下载对应城市的地理json文件
  • uni-app vue3 常用页面 组合式api方式
  • 小白:react antd 搭建框架关于 RangePicker DatePicker 时间组件使用记录 2
  • RPA编程实践:Electron简介
  • linux中各目录作用及介绍
  • c++中的this指针
  • Uniapp如何处理后端返回图片流验证码
  • YOLOv11在目标检测中的应用及其与PaddleDetection的对比
  • XXE 漏洞
  • CentOS系统安全配置详解:打造安全可靠的服务器防护
  • 006:无人机气象学知识
  • vue3中ref和reactive的用法,区别和优缺点,以及使用场景
  • vivo 轩辕文件系统:AI 计算平台存储性能优化实践
  • Pandas数据结构之Series对象
  • 【Unity踩坑】UWP应用未通过Windows应用认证:API不支持
  • AMQP + mysql + REST API 分布式系统和微服务架构
  • SSL/TLS 密码套件漏洞分析以及修复方法
  • 三防加固工业平板国产化的现状与展望
  • docker 安装postgres,nodejs连接pg
  • 在aws loadbalancer中配置http协议版本
  • BOOT_KEY按键(学习笔记)
  • 玩一玩MySQL服务器配置与管理的游戏(日志快乐版
  • LeetCode6题:Z字形变换(原创)
  • 传统数据仓库升级版:云数据仓库!