<!DOCTYPE html>
<
html
>
<
head
>
<
meta
charset
=
"UTF-8"
/>
<
meta
http-equiv
=
"X-UA-Compatible"
content
=
"IE=edge"
/>
<
meta
name
=
"viewport"
content
=
"width=device-width, initial-scale=1.0"
/>
<
title
>Document</
title
>
<
style
>
* {
padding: 0;
margin: 0;
}
/* 给外层box设置相对定位,并添加overflow属性,超出的隐藏 */
/* #d7 { */
#box {
position: relative;
overflow: hidden;
}
/* 图片外层的盒子设置宽度,能够让所有的图片在一排显示 */
#box .img-wrap {
width: 300%;
}
/* #d7是id选择器,html结构中并没有id属性值为d7的元素 */
/* #d7 img { */
/* 调整选择器 */
#box img {
/* 由于外层盒子设置300%, 里面的盒子均分,设置为33.33%, 课程中讲师也介绍了相关思路*/
/* width: 100%; */
width: 33.33%;
display: block;
/* 设置浮动,让图片在一排显示 */
float: left;
}
.dot_box {
position: absolute;
width: 48px;
bottom: 30px;
left: 50%;
margin-left: -24px;
}
.dot {
width: 10px;
height: 10px;
border-radius: 5px;
background-color: #fff;
margin-right: 6px;
float: left;
}
.dot_active {
/* 只需要设置为蓝色背景 */
background-color: #0058aa;
/* background-color: #fff; */
/* display: none; */
}
</
style
>
</
head
>
<
body
>
<
div
id
=
"box"
>
<
div
class
=
"img-wrap"
>
<
img
src
=
"./images/banner.png"
alt
=
""
class
=
"d7"
id
=
"d10"
/>
<
img
src
=
"./images/caosuyan.png"
alt
=
""
class
=
"d7"
id
=
"d8"
/>
<
img
src
=
"./images/chenhaibo.png"
alt
=
""
class
=
"d7"
id
=
"d9"
/>
</
div
>
<
div
class
=
"dot_box"
>
<
div
class
=
"dot dot_active"
data-index
=
"0"
></
div
>
<
div
class
=
"dot"
id
=
"d12"
data-index
=
"1"
></
div
>
<
div
class
=
"dot"
id
=
"d11"
data-index
=
"2"
></
div
>
</
div
>
</
div
>
<
script
>
var box1 = document.querySelectorAll("#box");
// 获取所有的图片,要使用querySelectorAll
// var box_d7 = document.querySelector("#box .d7");
var box_d7 = document.querySelectorAll("#box .d7");
var box_d8 = document.querySelector("#box .dot_box");
// 获取所有的小圆点,要使用querySelectorAll
// var box_d9 = box_d8.querySelector(".dot");
var box_d9 = box_d8.querySelectorAll(".dot");
// 标识当前显示第几张图片的索引,默认显示第一张,初始化索引值为0
var curIndex = 0;
// 遍历所有的小圆点元素,给每个小圆点绑定点击事件
// for (var k in box_d9) { // for...in 默认元素上的其他可遍历的属性也被遍历,这里不推荐使用
for (var k = 0; k < box_d9.length; k++) {
// box_d9保存的是所有小圆点元素,要结合索引去获取其中一个小圆点
// box_d9.onclik = function () { // onclick拼写错误,要注意下
box_d9[k].onclick = function () {
// 遍历图片,先将所有的图片的display属性值设置none隐藏起来,所有的小圆点设置为白色背景。
for (var i = 0; i < box_d7.length; i++) {
box_d7[i].style.display = "none";
box_d9[i].style.backgroundColor = "#fff";
}
// 获取当前被点击小圆点元素上的自定义属性值,并重新赋值给curIndex
curIndex = this.getAttribute("data-index");
// 并设置当前被点击的小圆点背景为蓝色
this.style.backgroundColor = "#0058aa";
// 根据获取的自定义属性值作为索引,设置对应的图片display属性值为block显示到页面
box_d7[curIndex].style.display = "block";
// 获取当前被点击的
// box_d7.style.display = none;
// box_d9.style.backgroundColor = "#fff";
// box_d9.style.backgroundColor = "#0058aa";
};
}
</
script
>
</
body
>
</
html
>
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧