Javascript 旋转木马onmouseover和onmouseout不起作用
我正在练习Javascript。我制作了一个图像传送带。我的旋转滑梯很好用。为了运行幻灯片,我使用了Javascript 旋转木马onmouseover和onmouseout不起作用,javascript,html,css,dom-events,Javascript,Html,Css,Dom Events,我正在练习Javascript。我制作了一个图像传送带。我的旋转滑梯很好用。为了运行幻灯片,我使用了setinterval。当用户将鼠标悬停在图像上时,我想停止幻灯片,当它将鼠标悬停在外时,幻灯片将从暂停的位置开始。为此,我使用了clearinterval。当我onmouseover然后onmouseout我的旋转木马行为怪异。似乎我的逻辑不起作用。我不知道怎么做 const images=document.getElementById('imgs')) const allImages=doc
setinterval
。当用户将鼠标悬停在图像上时,我想停止幻灯片,当它将鼠标悬停在外时,幻灯片将从暂停的位置开始。为此,我使用了clearinterval
。当我onmouseover
然后onmouseout
我的旋转木马行为怪异。似乎我的逻辑不起作用。我不知道怎么做
const images=document.getElementById('imgs'))
const allImages=document.queryselectoral(“#imgs img”)
设指数=0;
函数运行(){
索引++;
如果(索引>allImages.length-1){
索引=0
}
imgs.style.transform=`translateX(${-index*500}px)`
}
设置间隔(运行,2000年);
images.onmouseover=()=>{
console.log('In');
清除间隔(运行)+1
}
images.onmouseout=()=>{
console.log('Out');
设置间隔(运行,2000年);
}
*{
框大小:边框框;
}
身体{
保证金:0;
显示器:flex;
证明内容:中心;
对齐项目:居中;
最小高度:100vh;
}
旋转木马{
溢出:隐藏;
宽度:500px;
高度:500px;
盒影:2px2p5pRGBA(0,0,0,3);
}
.图像容器{
显示器:flex;
过渡:变换300ms线性;
变换:translateX(0);
}
img{
宽度:500px;
高度:500px;
对象匹配:覆盖;
}
您在间隔时间上犯了一个错误。 为了能够清除onmouseover事件中的间隔,需要将其分配给变量
var x = setInterval(run, 2000);
然后将变量传递给clearInterval方法
然后,在mouseout上再次设置间隔
x = setInterval(run, 2000);
最终代码如下所示:
var x = setInterval(run, 2000);
images.onmouseover = () => {
console.log('In');
clearInterval(x) + 1
}
images.onmouseout = () => {
console.log('Out');
x = setInterval(run, 2000);
}
非常感谢@Nikko。正如我提到的,我是初学者:)。我有几个问题要问你:1<代码>为什么分配给变量?2<代码>为什么在clearinterval中添加+1,3<代码>自x=设置间隔(运行,2000年);那为什么不把x放在onmouseout上呢不客气@krisna。回答你的问题。1.您需要将其分配给一个变量,因为稍后您将在clearInterval中使用它。2.实际上,你省略了“+1”,我只是从你的代码中复制了它。3.这是因为clearInterval清除了计时器,所以需要重新设置。
var x = setInterval(run, 2000);
images.onmouseover = () => {
console.log('In');
clearInterval(x) + 1
}
images.onmouseout = () => {
console.log('Out');
x = setInterval(run, 2000);
}