js轮播图练习

简介: 文章介绍了如何使用HTML、CSS和JavaScript创建一个简单的轮播图效果。通过`img`标签展示图片,并通过点击下方的点(`span`标签)切换图片。文章提供了完整的HTML结构、CSS样式和JavaScript代码,以及图片的展示和轮播图的效果图。

js轮播图练习

话不多说,直接上源码!
首先是HTML部分 index.html,主要用到了定位,父相对,子绝对。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>web轮播图练习</title>
    <link rel="stylesheet" href="css/index.css">

</head>
<body>
    <div class="box">
        <div class="inner-box">
            <img src="img/a1.jpg" id="imgHref">
            <span class="dot act"></span>
            <span class="dot"></span>
            <span class="dot"></span>
        </div>
    </div>
    <script src="js/imgLoop.js"></script>
</body>
</html>

css部分 index.css

*{
   
    margin: 0;
    padding: 0;
}
/*清空默认样式*/

body{
   
    width: 1920px;/*默认网页1920px宽*/
    height:auto;
    background-color: bisque;
}
.box{
   
    width: 100%;
    height: auto;
}
.box .inner-box{
   
    width: 900px;
    height: 490px;
    margin: 40px auto;
    position: relative;/*父盒子相对定位,便于dot原点定位*/
}
.box .inner-box span{
   
    display: inline-block;
    height: 16px;
    width: 16px;
    border-radius: 50%;

    background-color: transparent;
    position: absolute;/*dot原点相对于父盒子绝对定位*/
    /*位置left right都是相对于inner-box的宽高乘以比例*/
    left: 80%;
    top: 90%;
    cursor: pointer;
    box-shadow: 0px 0px 2px 2px darkgray;
}
/*通过伪类对每个span元素定位*/
.box .inner-box span:nth-of-type(2){
   
    left: 86%;
    top: 90%;
}
.box .inner-box span:nth-of-type(3){
   
    left: 92%;
    top: 90%;
}
.box .inner-box .dot:hover{
   
    background-color:azure;
}
/*切换图标原点时。。*/
.box .inner-box .act{
   
    background-color: azure;
}

然后是js部分 imgLoop.js
需要注意的是,如果使用img标签,那么你可以通过getAttributesetAttribute分别来获取value值和设定某个value值。然后就是一些获取元素的方式(类属性,ID属性,css选择器都可以),不过多赘述。

var spanList =document.getElementsByClassName("dot");// 获取dot类属性的标签元素
var imgHref = document.getElementById("imgHref");//根据id获取图片元素
var spanPre;// 记录一开始就已经存在act属性的span索引值 即一开始显示的原点
var spanSuf;// 记录经过点击事件改变的原点的span索引值
for (let i = 0; i < spanList.length; i++) {
   
    for (let j = 0; j < spanList.length; j++) {
   
        if(spanList.item(j).classList.contains("act")){
   
            spanPre = j;
            break;//找到点击之前显示的原点,然后用spanPre记录下
        }
    }
    spanList.item(i).onclick=function () {
   
        if(! spanList.item(i).classList.contains("act")){
   
            //移除之前已经存在的原点位置,改为现在点击后希望显示的图片
            spanList.item(spanPre).classList.remove("act");
            spanList.item(i).classList.add("act");
            //修改图片路径 
            imgHref.setAttribute("src","img/a"+(i+1)+".jpg");
            //记录当前点击的索引值给 spanSuf,同时修改spanPre的值为现在修改后的索引值
            spanSuf =i;
            spanPre = spanSuf;
        }
    }
}

最后是图片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
效果图
在这里插入图片描述

相关文章
|
5天前
|
JavaScript
时尚简洁的js轮播图特效插件
这是一款时尚简洁的js轮播图特效插件。该轮播图采用es6语法制作,底部带缩略图和描述信息。图片和描述信息在切换时同步滑动。
|
2月前
|
前端开发
js-基础轮播图制作
js-基础轮播图制作
31 7
|
2月前
|
JavaScript 前端开发
js轮播图有左右箭头和小点
js轮播图有左右箭头和小点
35 1
|
3月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。
|
4月前
|
JavaScript
js轮播图制作
js轮播图制作
37 1
|
4月前
|
JavaScript
js轮播图功能
js轮播图功能
25 0
|
4月前
|
前端开发 JavaScript
如何使用JavaScript制作轮播图
如何使用JavaScript制作轮播图
38 0
|
4月前
|
JavaScript
js之简单轮播图
js之简单轮播图
40 0
|
6月前
|
安全 JavaScript
旋转木马轮播图 html+css+js
旋转木马轮播图 html+css+js
|
6月前
|
机器学习/深度学习 JavaScript 前端开发
一篇文章讲明白JS左右轮播图的制作思路
一篇文章讲明白JS左右轮播图的制作思路
43 0