轮播图封装,包含进度圆点,左右切换

news2024/11/15 18:42:30

轮播图封装,包含进度圆点,左右切换


在这里插入图片描述

封装一个函数,方便多次调用
html:

<div class="home-Carousel" >
    <ul class="list1">
        <li class="item1 active">
            <a href="javascript:;" class="user_signIn">
                <div class="home-Carousel-Img">
                    <img src="/images/login2/smartElectricity.png" />
                </div>
            </a>
        </li>
        <li class="item1">
            <a  href="javascript:;" class="user_signIn">
                <div class="home-Carousel-Img">
                    <img src="/images/login2/smartGas.png" />
                </div>
            </a>
        </li>
        <li class="item1">
            <a  href="javascript:;" class="user_signIn">
                <div class="home-Carousel-Img">
                    <img src="/images/login2/smartWater.png" />
                </div>
            </a>
        </li>
    </ul>
    <div class="carouselOpt1">
        <ul class="pointList1">
            <li class="point1 active" data-index = 0></li>
            <li class="point1" data-index = 1></li>
            <li class="point1" data-index = 2></li>
        </ul>
    </div>
    <img  class="btn1" id="leftBtn1" src="/images/login2/back.png">
    <img  class="btn1" id="rightBtn1" src="/images/login2/next.png">
</div>

css:

.home-Carousel{
   position: relative;
   width: 100%;
   height: 600px;
   overflow: hidden;
}
.home-Carousel-Img {
   position: relative;
   width: 100%;
   height: 100%;
   display: flex;
   justify-content: center;
   align-items: center;
}
.list1{
   width: 100%;
   height: 100%;
   position: relative;
   padding-left: 0px;
   margin-bottom: 0 !important;
}

.item1{
   list-style: none;
   position: absolute;
   left: 0;
   opacity: 0;
   transition: all .8s;
   width: 100%;
   height: 100%;
   display: flex;
   justify-content: center;
   align-items: center;
}


.item1.active{
   z-index: 10;
   opacity: 1;
}
.carouselOpt1{
   position: relative;
   width: 58px;
   height: 60px;
   bottom: 9%;
   left: 50%;
}

.btn1:focus{
   background: #E8E8E8;
}

#leftBtn1{
   display: none;
   width: 36px;
   height: 36px;
   top:45%;
   left:0%;
}
.home-Carousel:hover #leftBtn1{
   display: block;
}


#rightBtn1{
   display: none;
   width: 36px;
   height: 36px;
   top:45%;
   right:0%;
}
.home-Carousel:hover #rightBtn1{
   display: block;
}

#rightBtn1 {
   right: 0px;
}
.pointList1{
   list-style: none;
   position: absolute;
   top: 26%;
   z-index: 200;
   display: inline-block;
   padding: 5px;
   background-color: rgba(0,0,0,.2);
   border-radius: 10px;
   -webkit-transition-duration: .3s;
   transition-duration: .3s;
}
.point1 {
   width: 10px;
   height: 10px;
   background-color: #E8E8E8;
   border-radius: 100%;
   float: left;
   margin: 0 3px;
   cursor: pointer;
}

.point1.active{
   background-color: #3399FF;
}

js:

 carouselFn('item1','point1','leftBtn1','rightBtn1','home-Carousel');
// 公用轮播图函数
function carouselFn(item,point,leftBtn,rightBtn,home){
    var items = document.querySelectorAll("."+item);//图片
    var points = document.querySelectorAll("."+point)//点
    var left = document.getElementById(""+leftBtn);//左按钮
    var right = document.getElementById(""+rightBtn);//右按钮
    var all = document.querySelector("."+home)//整个按钮轮播图内容
    var index = 0;
    var time = 0;//定时器跳转参数初始化

    //清除active方法
    var clearActive = function () {
        for (var i = 0; i < items.length; i++) {
            items[i].className = ''+item;
        }
        for (var j = 0; j < points.length; j++) {
            points[j].className = ''+point;
        }
    }

    //改变active方法
    var goIndex = function () {
        clearActive();
        items[index].className = item+' active';
        points[index].className = point+' active'
    }

    //左按钮事件
    var goLeft = function () {
        if (index == 0) {
            index = items.length-1;
        } else {
            index--;
        }
        goIndex();
    }

    //右按钮事件
    var goRight = function () {
        if (index < items.length-1) {
            index++;
        } else {
            index = 0;
        }
        goIndex();
    }

    //左右点击事件-绑定点击事件监听
    left.addEventListener('click', function () {
        goLeft();
        time = 0;//计时器跳转清零
    })

    right.addEventListener('click', function () {
        goRight();
        time = 0;//计时器跳转清零
    })

    //圆点点击事件-绑定点击事件监听
    for(var i = 0;i < points.length;i++){
        points[i].addEventListener('click',function(){
            var pointIndex = this.getAttribute('data-index')
            index = pointIndex;
            goIndex();
            time = 0;//计时器跳转清零
        })
    }

    //计时器
    var timer;
    //自动播放
    play();
    function play(){
        clearInterval(timer)
        timer = setInterval(() => {
            time ++;
            if(time == 25 ){
                goRight();
                time = 0;
            }
        },100)
    }

    //移入清除计时器
    all.onmousemove = function(){
        clearInterval(timer)
    }
    //移出启动计时器
    all.onmouseleave = function(){
        play();
    }

}

参考:https://blog.csdn.net/qq_20495901/article/details/122936580?spm=1001.2014.3001.5506

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1310471.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis-学习笔记(Jedis 通用命令)

flushAll 清空全部的数据库数据 jedis.flushAll();set & get set 命令 get 命令 运行结果展示 exists 判断该 key 值是否存在 当 redis 中存在该键值对时, 返回 true 如果键值对不存在, 返回 false keys 获取所有的 key 值 参数是模式匹配 *代表匹配任意个字符 _代表匹配一…

SD-MTSP:开普勒优化算法KOA求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、开普勒优化算法KOA 开普勒优化算法&#xff08;Kepler optimization algorithm&#xff0c;KOA&#xff09;由Mohamed Abdel-Basset等人于2023年提出。 参考文献&#xff1a; [1]Mohamed Abdel-Basset, Reda Mohamed, Shaimaa A. Abdel Azeem, Mohammed Jameel, Mohamed …

提升数据分析效率:Amazon S3 Express One Zone数据湖实战教程

前言 什么是 Amazon S3&#xff1f;什么是 S3 Express One Zone&#xff1f;实现概述 技术架构组件实现步骤概览 第一步&#xff1a;构建数据湖的基础第二步&#xff1a;选择并查看数据集第三步&#xff1a;在 Athena 中搭建架构第四步&#xff1a;数据转换与优化第五步&#x…

three.js(二)

three.js&#xff08;二&#xff09; 参考前言正文简单开始(不使用任何框架)补充 粗略带过(使用Vue框架)细致讲解(比如我使用react框架)App.jsx 的进阶版 项目打包补充打包遇到的问题:原因:解决办法: 参考 https://threejs.org/docs/ 前言 上一集中,我们用到了three.js的一个…

开源云原生网关Linux Traefik本地部署结合内网穿透远程访问

文章目录 前言1. Docker 部署 Trfɪk2. 本地访问traefik测试3. Linux 安装cpolar4. 配置Traefik公网访问地址5. 公网远程访问Traefik6. 固定Traefik公网地址 前言 Trfɪk 是一个云原生的新型的 HTTP 反向代理、负载均衡软件&#xff0c;能轻易的部署微服务。它支持多种后端 (D…

人工智能算法合集

人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;作为当今世界最热门的技术领域之一&#xff0c;正日益改变着我们的生活方式、工作方式甚至整个社会结构。在人工智能领域中&#xff0c;算法是至关重要的一环&#xff0c;它们是实现人工智能技术应用的核…

Axure元件的介绍使用以及登录界面和个人简历的绘制

目录 一、Axure元件介绍 1.1 简介 1.2 特点 1.3 元件操作 二、基本元件的使用 2.1 矩形和圆形 2.2 图片 2.2.1 图片元件特点 2.2.2 具体操作 2.3 占位符 2.3.1 使用规范方法举例 2.4 文本元件 2.4.1 图示 2.5 热区 2.5.1 图示 2.5.2 热区辅助页面排版 2.6 线段…

Linux 系统上配置 SSH 密钥

1. 生成 SSH 密钥 打开终端&#xff0c;运行以下命令来生成 SSH 密钥&#xff1a; ssh-keygen -t rsa -b 4096 -C "wqzbxhexample.com" 替换 "wqzbxhexample.com" 为你在 GitHub 注册时使用的邮箱地址。 2. 添加 SSH 密钥到 SSH 代理 运行以下命令来启…

智能优化算法应用:基于纵横交叉算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于纵横交叉算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于纵横交叉算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.纵横交叉算法4.实验参数设定5.算法结果6.…

定时器TIM HAL库+cubeMX(上)

定时器时钟源APB1 36MHz 一.基本定时器 1.基本框图 2.溢出时间计算 3.配置定时器步骤 TIM_HandleTypeDef g_timx_handle;/* 定时器中断初始化函数 */ void btim_timx_int_init(uint16_t arr, uint16_t psc) {g_timx_handle.Instance TIM6;g_timx_handle.Init.Prescaler p…

SLAM学习笔记001

当向机器人下达移动到地点B的命令后&#xff0c;机器人不免会问三个颇具哲学性的问题&#xff0c;即“我在哪儿”“我将到何处去”“我该如何去”。slam导航技术涵盖&#xff1a;航天、军事、特种作业、工业生产、智慧交通、消费娱乐等slam导航的经典应用&#xff1a;火星探测车…

「神印王座」皓晨带伙伴参与伊老试炼,12魔神攻打震南关,高能

Hello,小伙伴们&#xff0c;我是拾荒君。 时光匆匆&#xff0c;国漫《神印王座》的第85集已经与大家如约而至。想必各位观众都已经迫不及待地观看了这一集&#xff0c;其中&#xff0c;龙皓晨向光之晨曦团的成员们揭示了永恒之塔的秘密&#xff0c;并带领他们深入其中。 永恒之…

如何在Facebook Business Manager进行企业认证

Facebook Business Manager&#xff0c;简称BM&#xff0c;按照字面意思理解就是Facebook官方的商务管理平台&#xff0c;是供广告主团队去使用的一个管理工具。BM可以绑定Facebook公共主页、广告账户等一系列Facebook账号。通过BM&#xff0c;企业就可以在一个后台&#xff0c…

每日一练2023.12.14——幸运彩票【PTA】

题目链接&#xff1a;L1-062 幸运彩票 题目要求&#xff1a; 彩票的号码有 6 位数字&#xff0c;若一张彩票的前 3 位上的数之和等于后 3 位上的数之和&#xff0c;则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。 输入格式&#xff1a; 输入在第一行中给出…

设计模式(2)--对象创建(2)--生成器

1. 意图 将一个复杂对象的构建与它的表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。 2. 四种角色 指挥(Director)、抽象生成器(Builder)、具体生成器(Concrete Builder)、产品(Product) 3. 优点 3.1 可以改变一个产品的内部表示(通过定义新的生成器)。 3.2 将构…

垃圾回收 (GC) 在 .NET Core 中是如何工作的?(二)

接上一篇文章垃圾回收 (GC) 在 .NET Core 中是如何工作的&#xff1f;-CSDN博客 GC 会分配堆段&#xff0c;其中每个段都是一系列连续的内存。 置于堆中的对象归类为 3 个代系之一&#xff1a;0、1 或 2。 代系可确定 GC 尝试在应用不再引用的托管对象上释放内存的频率。 编号…

如何在本地搭建Oracle数据库并实现无公网ip通过PLSQL工具远程连接数据库

文章目录 前言1. 数据库搭建2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射 3. 公网远程访问4. 配置固定TCP端口地址4.1 保留一个固定的公网TCP端口地址4.2 配置固定公网TCP端口地址4.3 测试使用固定TCP端口地址远程Oracle 正文开始前给大家推荐个网站&#xff0c;前些天发…

人工智能与VR技术

人工智能与虚拟现实技术&#xff08;VR&#xff09;的结合是当今科技领域中备受瞩目的话题。两者的结合不仅在娱乐、教育、医疗等领域展现出了巨大的潜力&#xff0c;而且在未来的发展趋势中也将具有重要意义。本文将从技术融合、应用场景和未来发展等方面探讨人工智能与虚拟现…

单例模式:饿汉模式、懒汉模式

目录 一、什么是单例模式 二、饿汉模式 三、懒汉模式 一、什么是单例模式 单例模式是Java中的设计模式之一&#xff0c;能够保证某个类在程序中只存在唯一一份实例&#xff0c;而不会创建出多个实例 单例模式有很多实现方式&#xff0c;最常见的是饿汉和懒汉两种模式 二、…

网络小测------

使用软件PT7.0按照上面的拓扑结构建立网络&#xff0c;进行合理配置&#xff0c;使得所有计算机之间能够互相通信。并且修改各交换机的系统名称为&#xff1a;学号_编号&#xff0c;如你的学号为123&#xff0c;交换机Switch0的编号为0&#xff0c;则系统名称为123_0&#xff1…