从jQuery元素中移除slideToggle Queue
Removing slideToggle Queue from jQuery Element
我是jQuery的新手,我试图实现一个hover slideToggle在另一个元素上弹出。一切都很好,但是,如果最终用户快速地将光标放入或移出元素,则slideToggle队列会在光标进入元素时继续播放动画。我也有使用相同代码的多个内联元素,尽管只有一个元素,这种情况仍然存在。我已经尝试了。stop()和。clearqueue(),虽然也许我不正确地放置它们。如果存在html元素,我还为不在计算机上的用户提供了一个click元素,用于锁定切换。但我不确定这是否合适。谢谢你的帮助!
HTML:<div class="Holder">
<div class="Popout" val="0">
<span hidden>0</span>
</div>
</div>
<div class="Holder">
<div class="Popout" val="0">
<span hidden>0</span>
</div>
</div>
CSS: .Holder{
position: relative;
display:-moz-inline-stack;
display:inline-block;
width:155px;
height:400px;
border-style: solid;
border-width:1px;
vertical-align:top;
top:0;
}
.Popout{
height:100%;
width:100%;
background-color:black;
position:absolute;
display: none;
left:0;
bottom:0;
}
jQuery: $('.Holder').hover(
function(){
if ($('.Popout > span',this).html() == 0){
$('.Popout',this).slideToggle('slow');
}
},
function(){
if ($('.Popout > span',this).html() == 0){
$('.Popout',this).slideToggle('slow');
} else if ($('.Popout > span',this).html() == 2){
$('.Popout > span',this).html(0);
}
}
).click(function(){
if ($('.Popout',this).is(':visible')) {
if ($('.Popout > span',this).html() != 1){
$('.Popout > span',this).html(1);
}else{
$('.Popout',this).slideToggle('slow');
$('.Popout > span',this).html(2);
}
}else{
$('.Popout',this).slideToggle('slow');
$('.Popout > span',this).html(1);
}
});
Working JsFiddle Here: https://jsfiddle.net/cn2at071/1/
您需要在使用slideToggle
函数重新开始动画之前放置stop()
。
JSFiddle: https://jsfiddle.net/k9by9q0y/
jQuery:$('.Holder').hover(
function(){
if ($('.Popout > span',this).html() == 0){
$('.Popout',this).stop().slideToggle('slow');
}
},
function(){
if ($('.Popout > span',this).html() == 0){
$('.Popout',this).stop().slideToggle('slow');
} else if ($('.Popout > span',this).html() == 2){
$('.Popout > span',this).html(0);
}
}
).click(function(){
if ($('.Popout',this).is(':visible')) {
if ($('.Popout > span',this).html() != 1){
$('.Popout > span',this).html(1);
}else{
$('.Popout',this).slideToggle('slow');
$('.Popout > span',this).html(2);
}
}else{
$('.Popout',this).slideToggle('slow');
$('.Popout > span',this).html(1);
}
});
相关文章:
- jQuery-slideToggle动画不平滑
- 如何将queue()与'取消'按钮
- slideToggle:+符号未更新为-
- jQuery SlideToggle() 在 FireFox 中不起作用,在 Chrome 中工作
- 为什么javascript slidetoggle函数没有保持打开状态
- 在.slideToggle()之后改回css
- JQuery SlideToggle()在放松的每一步都执行函数
- 使用jQuery.queue而不是setTimeout
- slideToggle()使第一个li a在单击时跳转
- jQuery .next().slideToggle() not working
- AngularJS错误”;element.childs(..).slideToggle不是函数“;
- .slideToggle-on.click功能不起作用
- jQuery slideToggle在下拉动画的末尾跳转
- LocalStorage无法使用slideToggle(使用切换)
- 使用 :after 选择器与 slideToggle() 一起显示图标的问题
- 使用 slideToggle() 使容器内的链接工作
- 做 jquery 延迟和 queue:false 相互否定
- 在 Jquery 中使用 queue() 和 filter() 链接会提高性能吗?
- 通过 Queue.Defer 发送查询字符串
- 从jQuery元素中移除slideToggle Queue