我有一個 HTML,我正在嘗試隨機化每個圖層的上邊距屬性。
function randomize() {
let r;
let list = document.querySelectorAll("span");
for (let i = 0; i < list.length; i ) {
r = Math.floor(Math.random() * 50);
list.forEach((list) => {
style.top = `${r} px`;
});
}
}
span {
position: absolute;
height: 20px;
width: 20px;
border-radius: 100%;
z-index: -2;
}
<div class="parallax">
<span class="layer" data-speed="-5">10110</span>
<span class="layer" data-speed="-5">0</span>
</div>
我在這里做錯了什么?我找不到合適的解決方案。
uj5u.com熱心網友回復:
一些東西:
- 要使用
topCSS 屬性,元素需要定義一個位置。您可以在 CSS (position: relative) 中設定或在 JS 中設定。(EDIT OP 添加了他們已經設定的 CSSposition。將這個留給那些在top沒有設定元素的情況下使用的人position) - 您需要將隨機化移動到
forEach否則它將對所有span元素具有相同的值 - 您需要將
style道具附加到您正在傳遞的元素上forEach,例如,list.style.styleProp
function randomize() {
let r;
let list = document.querySelectorAll("span");
for (let i = 0; i < list.length; i ) {
list.forEach((list) => {
r = Math.floor(Math.random() * 50);
list.style.top = r 'px';
});
}
}
randomize();
span {
position: absolute;
height: 20px;
width: 20px;
border-radius: 100%;
z-index: -2;
}
<div class="parallax">
<span class="layer" data-speed="-5">10110</span>
<span class="layer" data-speed="-5">0</span>
</div>
uj5u.com熱心網友回復:
因為<span>本身就是一個行內元素,margin 沒有任何作用。
將您的 s 更改<span>為<div>s。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/495080.html
標籤:javascript 功能 随机的
