[英]Why I cannot change the left attribute value for my html element?
單擊我制作的指針時,我正在嘗試更改我的 img-list 的左值。 更改左值后,我可以切換到另一個 img。
我的 img-list 有 state 絕對 position。 而且,當我點擊指針時,左邊的值發生了變化,圖像確實變成了另一個圖像,但只有一秒鍾。 一秒鍾后,它又變回了原始圖像,當我提醒查看 img_list.style.left 的當前值時,它顯示了正確的值。 但是左邊的值仍然保持相同的 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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.