JS实现轮播图

article/2025/11/10 10:20:05

在css使用动画可以实现简单的轮播图,但如今已经学习了JS,用JS来写轮播图更加方便快捷。今天就带着大家来实现轮播图。话不多说我们直接看代码:

 这是css部分,进行了简单的样式操作接下来就进入js阶段:

 运行结果如下:

在这小编把代码直接发给大家,仅供参考:

    <title>轮播图</title>

    <style>

        * {

            margin: 0;

            padding: 0;

            list-style: none;

        }

       

        .wrap {

            width: 500px;

            height: 350px;

            margin: 0 auto;

            position: relative;

            background-color: orange;

            background-position: center center;

            background-size: cover;

        }

       

        .arraw {

            width: 30px;

            height: 30px;

            background-color: rgba(0, 0, 0, .7);

            color: #fff;

            text-align: center;

            position: absolute;

            line-height: 30px;

            top: 160px;

            border-radius: 50%;

        }

       

        .prev {

            left: 10px;

        }

       

        .prev:hover {

            cursor: pointer;

        }

       

        .next {

            right: 10px;

        }

       

        .next:hover {

            cursor: pointer;

        }

       

        .dots {

            position: absolute;

            width: 160px;

            height: 20px;

            background-color: rgba(0, 0, 0, .7);

            bottom: 10px;

            left: 170px;

            display: flex;

            justify-content: space-around;

            align-items: center;

            border-radius: 10px;

        }

       

        .dot {

            width: 10px;

            height: 10px;

            background-color: rgba(255, 255, 255, .7);

            border-radius: 50%;

        }

       

        .dot:hover {

            cursor: pointer;

        }

       

        .now {

            background-color: #fff;

        }

    </style>

</head>

<body>

    <div class="wrap">

        <div class="arraw prev">

            < </div>

                <div class="arraw next"> > </div>

                <div class="dots">

                    <div class="dot now"></div>

                    <div class="dot"></div>

                    <div class="dot"></div>

                    <div class="dot"></div>

                </div>

        </div>

</body>

<script>

    var data = ['https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg2.niutuku.com%2Fdesk%2F130220%2F17%2F17-niutuku.com-439.jpg&refer=http%3A%2F%2Fimg2.niutuku.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1655342711&t=02a3a61ac81b371454d8957accbb3157',

        'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic%2Fc8%2F05%2F06%2Fc805066d0b20adf869ac39ef3ce0a2fd.jpg&refer=http%3A%2F%2Fup.enterdesk.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1655342711&t=c4e293679b5c8aa638e8666d2036837c',

        'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fup.enterdesk.com%2Fedpic_source%2F5b%2F78%2Fcb%2F5b78cb5c9b666c1bd4845c31c83a544d.jpg&refer=http%3A%2F%2Fup.enterdesk.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1655342711&t=0ec37ea61a60009897d5a353b8e9871f',

        'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fdesk-fd.zol-img.com.cn%2Ft_s960x600c5%2Fg2%2FM00%2F0A%2F0E%2FChMlWV7Ny86IKavgABdq99NojwIAAPgxwETpvoAF2sP356.jpg&refer=http%3A%2F%2Fdesk-fd.zol-img.com.cn&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1655342711&t=12383ff3a9f62c4b81e8d22a43969bfb'

    ]

    var dWrap = document.querySelector('.wrap');

    var dPrev = document.getElementsByClassName('prev')[0];

    var dNext = document.getElementsByClassName('next')[0];

    var dots = document.querySelectorAll('.dot');

    var showIndex = 0; //当前显示图片的下标

    var timer = null;

    timer = setInterval(function() {

        dots[showIndex].classList.remove("now");

        showIndex = showIndex + 1;

        //越界处理

        showIndex = showIndex === data.length ? 0 : showIndex;

        changeBg(data[showIndex]);

        dots[showIndex].classList.add("now");

    }, 2000)

    //点击事件

    for (var i = 0; i < dots.length; i++) {

        dots[i].index = i;

        dots[i].onclick = function() {

            dots[showIndex].classList.remove("now");

            showIndex = this.index;

            changeBg(data[showIndex]);

            dots[showIndex].classList.add("now");

        }

    }

    dPrev.onclick = function() {

        //修改dot状态

        // dots[showIndex].className = 'dot';

        dots[showIndex].classList.remove("now");

        showIndex = showIndex - 1;

        showIndex = showIndex === -1 ? data.length - 1 : showIndex;

        changeBg(data[showIndex]);

        dots[showIndex].classList.add("now");

    }

    dNext.onclick = function() {

            dots[showIndex].classList.remove("now");

            showIndex = showIndex + 1;

            //越界处理

            showIndex = showIndex === data.length ? 0 : showIndex;

            changeBg(data[showIndex]);

            dots[showIndex].classList.add("now");

        }

        //改变dWrap背景图

    function changeBg(pic) {

        dWrap.style.backgroundImage = `url(${pic})`;

        // 改变指示点

    }

    changeBg(data[0]);

</script>

</html>


http://chatgpt.dhexx.cn/article/lgvBu18H.shtml

相关文章

JS实现轮播图(一看就懂逻辑清晰)

轮播图有很多种实现方法&#xff0c;这是其中一种最清晰的方法。思路很清晰&#xff0c;代码很简单&#xff0c;欢迎大佬多指教。 先来看下效果图&#xff0c;嫌麻烦就不用具体图片来实现了&#xff0c;主要是理清思路。&#xff08;自动轮播&#xff0c;左右按钮切换图片&…

JS实现轮播图的三种简单方法。

Js实现轮播图01 实现思路 这可能是轮播图最简单点的实现之一&#xff0c;通过更改图片的src来实现该效果&#xff0c;首先需要将图片命名格式统一比如pic01.jpg&#xff0c;pic02.jpg…,再通过js使用定时器去改变img标签里面的src图片链接的名字来实现切换效果。代码如下&…

JS实现轮播图的三种简单方法

01、JS轮播图实现1 实现思路这可能是轮播图最简单点的实现之一&#xff0c;通过更改图片的src来实现该效果&#xff0c;首先需要将图片命名格式统一比如pic01.jpg&#xff0c;pic02.jpg…,再通过js使用定时器去改变img标签里面的src图片链接的名字来实现切换效果。代码如下&…

Mysql联表查询(学生表、教师表、成绩表、课程表)

文章目录 1 建库语句2 建表语句3 插入测试数据4 常见查询问题 1 建库语句 create database if not exists studentinfo character set utf8mb4;2 建表语句 一个学生可以选多门课程&#xff0c;一个课程下也对应多个学生&#xff0c;所以需要一个关系表&#xff08;student_cou…

mysql实操《学生表》

第一步&#xff0c;创建所需要的的表信息 1.创建学生表和添加所需要的信息 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 添加测试数据1.学生表 insert into Student values(‘01’ , ‘赵雷’ , ‘1990-01-01’ , ‘男’); inser…

用Mysql设计一张学生表

mysql> create table student(-> id int,-> name varchar(10),-> gender char(1),-> birthday date,-> score double(5,2),-> email varchar(64),-> status tinyint#最后一行不用加逗号。-> ); Query OK, 0 rows affected (0.02 sec)mysql> desc…

Java数据库建立学生表

Java数据库建立学生表 代码如下&#x1f447;&#x1f447;&#x1f447;&#xff1a; import java.sql.*; //数据库建立学生表 public class Mysql {//数据库名为world&#xff0c;用户名为root&#xff0c;密码为adminprivate static String url "jdbc:mysql://localho…

mysql建立班级表_mysql数据表设计-班级表 学生表 老师表 课程表 成绩表

mysql数据表设计- 班级表 学生表 老师表 课程表 成绩表 image.png /* Navicat Premium Data Transfer Source Server : localhost Source Server Type : MySQL Source Server Version : 50624 Source Host : localhost Source Database : sqlexam Target Server Type : MySQL T…

mysql创建学生表命令_用sql语句创建学生表如何做

在数据库中使用SQL语句创建学生表代码如下&#xff1a;( 学号 char(12) primary key, 姓名 char(6) not null, 性别 char(2) check(性别 IN (男,女)), 班级 char(15) ) 相关表的创建&#xff1a;create table 成绩表 ( 学号 char(12)references 学生表(学号), 课程号 char(2)re…

SQL的学习学生表

1.创建数据库 create database school; 2.创建学生表&#xff0c;成绩表&#xff0c;课程表 create table student( Sno int primary key not null, Sname varchar(20) not null, Ssex varchar(2) null, Birthday datetime null, Sdept varchar(20) null);create table course(…

学生表

创建 1.学生表 Student(SID,Sname,Sage,Ssex) --SID 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 2.课程表 Course(CID,Cname,TID) --CID --课程编号,Cname 课程名称,TID 教师编号 3.教师表 Teacher(TID,Tname) --TID 教师编号,Tname 教师姓名 4.成绩表 SC(SID,CID,s…

学生表 成绩表 课程表 教师表

学生表&#xff1a; Student(s_id,s_name,s_birth,s_sex) –学生编号,学生姓名, 出生年月,学生性别 课程表&#xff1a; Course(c_id,c_name,t_id) – –课程编号, 课程名称, 教师编号 教师表&#xff1a; Teacher(t_id,t_name) –教师编号,教师姓名 成绩表&#xff1a; Score(…

MySQL基础 创建学生表实现查询基础功能

一. 创建学生表 1.进入MySQL WIN R 输入cmd 输入mysql -u root -p 输入密码进入mysql 2. 输入show databases; 查询现有数据库 选择一个数据库 use 数据库名称 创建一个学生表 create table stu( id int ,-- 编号 name varchar(10),-- 姓名 gender char(1)…

数据库学生表

文章目录 学生表建立学生表&#xff1a;建表过程中出现的错误&#xff1a; 插入数据 课程表建立课程表&#xff1a;插入数据 选课表建立选课表插入数据建表过程中出现的错误&#xff1a; 修改基本表增加属性列&#xff1a;修改数据类型&#xff1a;增加约束条件&#xff1a;删除…

LDA理解

LDA 过程&#xff1a; 希拉里邮件lda建模&#xff1a;

LDA步骤

自己学习备忘用。节选自(1条消息) LDA原理小结_Sual-CSDN博客_lda原理

NLP: LDA主题模型

Essence本质&#xff1a;LDA模型主要包括主题分布θ和词语分布&#xff0c; 主题分布&#xff1a;各个主题在文档中出现的概率分布。词语分布&#xff1a;各个词语在某个主题下出现的概率分布。 pLSA模型中这两个分布是固定的&#xff0c;由期望最大化EM(Expectation Maximiz…

LDA算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、LDA是什么&#xff1f;二、公式推导三、PCA和LDA的区别总结 前言 线性判别分析&#xff08;LDA&#xff09;是一种有监督学习算法&#xff0c;同时经常被用…

自然语言处理7——LDA

文章目录 1. PLSA、共轭先验分布&#xff1b;LDA主题模型原理1.1 PLSA1.2 共轭先验分布1.2.1 共轭先验分布的参数确定1.2.2 常见的共轭先验分布 1.3 LDA主题模型原理 2. LDA应用场景3. LDA优缺点4. LDA 在sklearn中的参数学习5. 使用LDA生成主题特征&#xff0c;在之前特征的基…

matlab lda数据降维,LDA有标签数据降维

之前无标签数据降维PCA,那么像下图带有标签数据,如果用PCA降维将会投影到v轴上,这个投影方差最大,数据将变成不可分状态,LDA将把数据投影加上已有分类这个变量,将数据投影到u轴上 假设原数据分成n类,用矩阵Di表示i类数据,均值向量mi,将设将数据投影到向量w上后,均值分…