javascript - 如何在 JavaScript 中停止鼠标悬停间隔?
问题描述
<script>
var pics = [
"image/city (1).jpg",
"image/city (2).jpg",
"image/city (3).jpg",
"image/city (4).jpg",
"image/city (5).jpg",
"image/city (6).jpg",
"image/city (7).jpg",
"image/city (8).jpg",
"image/beach.jpg",
"image/beach2.jpg"
];
var inval;
var photo;
function carousel() {
photo = document.getElementById('carousel-pics');
var i = -1;
inval = setInterval(function() {
i++;
if (i >= pics.length) {
i = 0;
}
photo.src = pics[i];
}, 1000);
}
function removeInterval() {
clearInterval(inval);
}
document.getElementById('carousel-pics').addEventListener("mouseover", removeInterval);
</script>
<div class="polaroid" id="carousel-div" style="width:1000px; height:600px;">
<img id="carousel-pics" src="image/city (1).jpg" alt="athens" style="width:1000px; height:600px;">
</div>
上面的代码是一些照片的幻灯片。当我将鼠标悬停在照片上时,我想停止幻灯片放映。但它不起作用。如果我添加一个按钮来停止幻灯片放映,它可以工作,但是当我使用鼠标悬停事件时,它不起作用。
解决方案
我在这里看到的一个问题是<img>
标签在标签下方script
。当您尝试附加addEventListener
at 时document.getElementById('carousel-pics')
,它不起作用,因为document.getElementById('carousel-pics')
此时为空。尝试保持script
低于 html。
<script>
let ele1 = document.getElementById("test")
console.log('[1]' , ele1)
</script>
<div id="test"></div>
<script>
let ele2 = document.getElementById("test")
console.log('[2]' , ele2)
</script>
以上是相同的代码表示。您可以在第一个脚本中看到元素是null
,而在第二个脚本中不是
推荐阅读
- c# - CS1503 参数 1:无法从“Poc.Core.Player”转换为“Poc.Interfaces.IScheduleable”
- java - 如何在 JAVA 中将字节数组从 BGR24 转换为 JPG?
- javascript - 在javascript中多次执行自定义打字功能时出现问题
- c++ - C++有没有办法丢弃多行std::cin输入
- macos - MAC 上 .net 核心应用程序的核心签名 + 强化运行时
- python-3.x - 将 kv 文件中的标签文本绑定到 python 文件中的方法
- java - 我怎么能说一个字符串匹配我的模式
- python - python中的正弦平方
- pgadmin - 哪个版本的 pgAdmin 开始使用主密码?
- vba - 显示随机值的 MS Access 组合框