为什么我不能改变我的html元素的左属性值?



我试图改变我的img-list左值时,点击我所做的指针。在改变左值后,我可以切换到另一个img.

我已经声明了我的img-list的绝对位置。当我点击指针时,左边的值改变了,图像确实变成了另一个图像,但只是一秒钟。一秒钟后,它又变回了原来的图像,当我注意到img_list.style的当前值时。左边显示的是正确的值。但是左边的值仍然是0。我不知道这里出了什么问题,有人能给我一些提示吗?

<!DOCTYPE html>
<html lang="en">
<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>
<link rel="stylesheet" href="../reset.css">
<style>
.wrapper{
width: 370px;
height: 350px;
background-color: #bfa;
margin: 50px auto;
padding:10px 0;
overflow: hidden;
position: relative;
}
.img-list{
position: absolute;
left: 0;
}
.img-list li{
float:left; 
margin:0 10px;
}
img{
width:350px;
height: 350px;
}
.pointer{
position: absolute;
bottom: 10px;
left: 50%;
transform: translateX(-50%);
}
.pointer a{
float: left; 
width: 15px;
height: 15px;
background-color: red;
opacity: 0.5;
}
.pointer a:hover{
background-color: grey;
}
.pointer a:not(:first-child){
margin-left: 10px;
}
</style>
<script type="text/javascript">
window.onload = function () {
var img_list = document.getElementById("imglist");
var img = img_list.getElementsByTagName("img");
img_list.style.width = 370 * img.length + "px";
console.log(img_list.style.width);
var pointer = document.getElementsByClassName("pointer")[0];
var allA = pointer.getElementsByTagName("a");
for (var i = 0; i < allA.length; i++) {
allA[i].index = i;
allA[i].onclick = function () {
var value = this.index * (-370) + "px";
img_list.style.left = value;
alert(img_list.style.left);
};
}
}
</script>
</head>
<body>
<div class="wrapper">
<ul class="img-list" id = "imglist">

<li><a href=""><img src="./pics/01/d56283cb25574af8.jpg!cc_320x320.webp" alt=""></a></li>

<li><a href=""><img src="./pics/03/eb1b74d5j00rmlivy000jc000go00b4c.jpeg" alt=""></a></li>
<li><a href=""><img src="./pics/01/fef85dc4d0992e62.jpg!cc_320x320.webp" alt=""></a></li>
<li><a href=""><img src="./pics/01/3bc798a7387a216d.jpg!cc_320x320.webp" alt=""></a></li>
</ul>
<div class="pointer">
<a href=""></a>
<a href=""></a>
<a href=""></a>
<a href=""></a>
</div>
</div>
</body>
</html>

似乎每次单击href属性为空的a元素都会刷新页面,只需删除它们:

<div class="pointer">
<a></a>
<a></a>
<a></a>
<a></a>
</div>

最新更新