此问题在此处已有答案:
How to add onload event to a div element(26个答案)
4天前关闭。
我是JS的新手,根据我看到的一个展示复制了这个效果,这个效果应该是在悬停时“故障”文本,然后使其返回到原始文本。这是通过使用.onmouseover
并在那之后运行事件来实现的。我试图将其更改为.onload
,但它不会运行动画/效果,我不知道为什么它不起作用。
下面是我的代码:
const symbols = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789"
document.getElementById("load-text").onmouseover = event => {
let iterations = 0
const interval = setInterval(() => {
event.target.innerText = event.target.innerText.split("")
.map((letter, index) => {
if (index < iterations) {
return event.target.dataset.value[index];
}
return symbols[Math.floor(Math.random() * 35)]
})
.join("");
if(iterations >= event.target.dataset.value.length) clearInterval(interval);
iterations += 1 / 6;
}, 30);
}
body {
height: 100vh;
width: 100vw;
margin: 0;
overflow: hidden;
display: flex;
background-color: #121012;
justify-content: center;
}
.loader{
margin-top: 40vh;
color: #EEEEEE;
font-family: monospace;
font-size: 30pt;
}
<div class="loader">
<p id="load-text" data-value="LOADER"> LOADER </p>
</div>
<script src="project.js"></script>
(代码笔:https://codepen.io/Tesked/pen/ExedNQX)
我已经尝试在这个线程How do I call a JavaScript function on page load?中使用可能的解决方案,但它们似乎都不起作用,除非我添加.onmouseover
,否则事件仍然不会触发。
这里的想法是使用这个作为一个“加载屏幕”的排序,将做毛刺的效果,然后在页面的其余部分褪色,虽然这是一个问题,另一个时间。
3条答案
按热度按时间nr7wwzry1#
我对你的JS代码做了一个小改动
我把函数 Package 在一个
window.onload
里面,在你的笔上测试,看起来很好用,你能试试这个吗?看看这是不是你所期望的。qacovj5a2#
只需通过以下方式触发事件:
x一个一个一个一个x一个一个二个一个x一个一个三个一个
svujldwt3#
你还需要几个步骤,但
DOMContentLoaded
事件可以做到这一点。为了定位它,你还需要在DOM中搜索元素,因为event.target
将是文档。