关于hover和setInterval的问题
我使用悬停功能,并且在鼠标悬停时 setInterval 函数开始工作 和onmouseout我清除setInterval函数
我的代码如下:
----更新---- 对于幻灯片,我有一个 div 名称 divForImages 和我 .append() 该特定 div 中的新图像。我使用 .append() 函数。 我的算法非常简单: 使用 Fadein 函数淡出前一个图像并 .append() 新图像。 所以新的更新版本是:
var IntervalID;
$("li").hover(
function() {
IntervalID = setInterval(function() {
//a slideshow begins to auto play...
$(".divForImages img").fadeOut(1000); //previous image
var item = $('<img src="'+attribute_of_href+'" width="200" height="100" style="left:0px;top:0px;position:absolute" />').css({"display":"none"}); //new image that is going to be faded in
$(".divForImages").append(item);/* new */
item.fadeIn(1000);
}, 4000);
},
function() {
clearInterval(IntervalID);
});
我定义的毫秒是4000。 问题是,当我首先将鼠标悬停在 li 上时,幻灯片不会开始 立即自动播放,但等待 4 秒!
当然,我已经定义了 4000 秒的时间,
我可以让 setInterval 在鼠标悬停时立即启动而不是等待 4000 毫秒吗?
提前致谢
I use the hover function and on mouseover a setInterval function begins working
and onmouseout i clear the setInterval function
My code is as follows:
----UPDATED----
For the slideShow i have a div name divForImages and i .append() the new image in that specific div. I use the .append() function.
My algorithm is really simple:
FadeOut the previous image and .append() the new image by using the Fadein function.
So the new updated version is:
var IntervalID;
$("li").hover(
function() {
IntervalID = setInterval(function() {
//a slideshow begins to auto play...
$(".divForImages img").fadeOut(1000); //previous image
var item = $('<img src="'+attribute_of_href+'" width="200" height="100" style="left:0px;top:0px;position:absolute" />').css({"display":"none"}); //new image that is going to be faded in
$(".divForImages").append(item);/* new */
item.fadeIn(1000);
}, 4000);
},
function() {
clearInterval(IntervalID);
});
The milliseconds i have defined are 4000.
The problem is that when i FIRST mousover the li, the slideshow doesn't begin
to autoplay immediately but it waits for 4 seconds!
Of course, i have defined the time for 4000 seconds
Can i make the setInterval to start immediately when i mouseover and not wait for 4000 ms??
thanks, in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
试试这个:
Try this:
您需要使用 settimeout 而不是 setinterval
了解更多信息,请检查 setinterval 与 settimeout
You need to use settimeout instead of setinterval
to learn more check setinterval vs settimeout
当然,只需命名该函数,立即调用它,然后让它按名称将其自身返回给
setInterval()
。示例: http://jsfiddle.net/Hgwt8/
Sure, just name the function, invoked it immediately, and have it return itself by name to the
setInterval()
.Example: http://jsfiddle.net/Hgwt8/