jQuery/Javascript图像库如果悬停在X上则更改图像,但如果小于X则不更改图像
jQuery/Javascript image gallery change image if hovered over for X but not if less than X
这个问题可能有一个非常简单的答案,但我已经思考了一段时间,想不出它是什么。
我有一个带有缩略图和一个主图像的图像库,如果用户将鼠标悬停在一个缩略图上(例如500ms
),我想更改主图像,但如果他们将鼠标拖动到其他缩略图上,则悬停的时间将小于500ms
,因此我不希望更改图像。
感谢所有回复的人,刚刚想好并回来发布,但你们都打败了我,再次感谢!
好吧,您必须将javascript计时器与setTimeout()和clearTimeout(。
基本上,当鼠标进入图像时,你会创建一个计时器——当光标离开时,你可以清除它:如果它还没有运行,它将被取消。
var timer;
$('img').mouseenter(function() {
timer = setTimeout(function() {
// do something here
}, 500);
}).mouseleave(function() {
clearTimeout(timer);
});
DEMO
试试这个。。。
var timeout;
$('.yourimages').mouseenter(function() {
timeout = setTimeout(function() { // remember the "task" id so we can clear it if required
//change image
}, 500); // number of milliseconds to wait
}).mouseleave(function() {
clearTimeout(timeout); // clear the timeout
});
它设置了一个定时器,在500毫秒后执行,但如果鼠标离开图像,则会重置。显然,您需要用图像类替换.yourimages
,如果需要,您可以更改超时。
您可以使用这样的机制:
var myTimer;
$('#myElement').hover(function(){
setTimeout(function(){
alert('Now I''d be ready');
},500);
},function(){
clearTimeout(myTimer);
});
请参阅:https://developer.mozilla.org/en/DOM/window.setTimeout有关setTimeout()
的信息
另一件需要添加的事情可能是指向hoverIntent
插件,这可能正是您想要的:http://cherne.net/brian/resources/jquery.hoverIntent.html
相关文章:
- javascript如果图像不存在don't加载它
- 如果宽度是百分比,如何设置以px为单位的图像高度
- 如果显示当前图像,则禁用链接
- 如果图像标记是用javascript编写的,并且需要用户输入,那么图像不会随页面加载吗
- 如果没有历史记录,我如何隐藏图像或按钮onclick=;历史.go(-1);
- 如果我使用 src 而不是 ng-src,角度如何仍然渲染图像
- 如何让我的网站上的WEBP图像加载在morzilla firefox中有一个可能的解决方案吗?如果是,那么如何
- 如果我将宽度调整为另一个值,找出我的图像的高度
- 有没有一个javascript库可以生成这样的垂直切片背景图像?如果没有,我怎么能创建它
- 如果单击画布中的图像,则发出警报
- 多个复选框,如果正确,则更改背景图像(HTML/Javascript)
- 如果图像太大,如何裁剪图像
- 如果图像具有 guid 作为名称,则 jqZoom 不起作用
- 使用javascript中的if和else语句来显示图像(如果图像不存在,则显示其他图像)
- 如果当前图像加载缓慢,如何加载其他图像
- 如果浏览器不显示图像,如何显示图像;不支持HTML 5 Canvas
- 如果没有src,则使用jquery隐藏图像
- 如果损坏图像,隐藏li
- 如果有更高质量的图像可用,则加载较低质量的图像
- 检查是否在一定时间间隔内加载了多个图像;如果没有,则替换为其他 URL