jQuery切换不需要动画

时间:2012-04-30 15:17:21

标签: jquery animation

我可能会失明,或者没有参数,选项或任何禁用动画的选项:

.toggle()

我只是想通过toggle()来显示()和隐藏()但是我使用slideToggle,fadeToggle甚至普通切换的每个切换都带有动画。

如何“删除”它们?

7 个答案:

答案 0 :(得分:14)

只需确保toggle()的参数解析为true,而不是1。

toggle(1); // animation 
toggle(true); // no animation.

答案 1 :(得分:6)

如果没有提供参数,

toggle()是立即的。

slideToggle()和fadeToggle()使用动画的默认值,使它们立即生效,传递值'0';

这些都是相同的,只是显示和隐藏元素:

$('button').on('click', function() {
    ToggleElement.toggle();
});

$('button').on('click', function() {
    ToggleElement.slideToggle(0);
});

$('button').on('click', function() {
    ToggleElement.fadeToggle(0);
});

FIDDLE

但是没有理由在没有动画的情况下使用底部两个,因为那种方式会失败。

快一点就是在if / else语句中使用javascripts native element.style.display = 'none'/'block'

答案 2 :(得分:3)

您可以随时提供自己的切换功能:

$.fn.quicktoggle = function() {
    this.each(function() {
        var $this = $(this);
        if ($this.is(':visible')) {
            $this.hide();
        } else {
            $this.show();
        }
    });
    return this;
};

答案 3 :(得分:2)

只使用没有参数的切换,它应该是立即的。

来自文档:

  

没有参数,.toggle()方法只是切换可见性   元素:

$('.target').toggle();

答案 4 :(得分:2)

只需关闭效果

jQuery.fx.off = true;

答案 5 :(得分:0)

如果您想轻松替换代码中的所有实例,那么稍微更“强加”的方法是覆盖这些函数。

$.fn.slideToggle = function(duration, callback ) {
    duration = 0;
    callback = callback || function(){};
    this.toggle(duration, callback);
};

$.fn.fadeToggle = function(duration, callback) {
    duration = 0;
    callback = callback || function(){};
    this.toggle(duration, callback);
};

DEMO:http://jsfiddle.net/bChVe/3/

答案 6 :(得分:0)

$('.clk').click(function(){

if(document.getElementById("ID").className == "p-cap hide")
{
   document.getElementById("ID").className = "p-cap show";
}
else
{
   document.getElementById("ID").className = "p-cap hide";
}

}); 
.p-cap { height:100px; width:100px; background :red; float:left; }

.clk { height:100px; width:100px; background :green; float:left; }

.hide { display: none; }

.show { display: block; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="clk"></div>
<div id="ID" class="p-cap hide"></div>