简体   繁体   English

jQuery上下切换幻灯片动画

[英]jQuery toggle slide animation down and up

im creating custom toggle animation on the list of bank while onlick it will toggle down and toggle up. 我在银行列表上创建自定义切换动画,而onlick则会向下和向上切换。 However my code is working but it doesn't show up like an animation form. 但是我的代码可以正常工作,但不会像动画形式那样显示。 it just close and down directly without sliding slowly. 它只是直接关闭并向下滑动而不会缓慢滑动。 Kindly advise : 好心提醒 :

I wish to toggle down for 200 height and toggle up for 102 height 我希望向下切换200高度,向上切换102高度

jQUERY : jQUERY:

$(document).ready(function(){
        $(".moreBankingBtn").click(function(){
            $('.bank_listSetUp').toggleClass('bank_listSetTall'); // Will add/remove class on each click
        });
    }); 

HTML : HTML:

<div name="bankDisplay2" class="bank_list_main">
                        <ul data-bind="foreach: thirdPayBank" class="bank_list bank_listSetUp">
                                <li data-bind="attr:{'data-key':key, 'data-code':bankcode}, css: memberModel.netbankCssClass($data), click: $root.netBankSelectBank" data-key="工商银行" data-code="ICBC" class="bank_2"><a href="javascript:void(0)" class="bank"></a></li>

                                <li data-bind="attr:{'data-key':key, 'data-code':bankcode}, css: memberModel.netbankCssClass($data), click: $root.netBankSelectBank" data-key="农业银行" data-code="ABC" class="bank_3"><a href="javascript:void(0)" class="bank"></a></li>

</ul>
</div>

CSS : CSS:

.bank_listSetUp { 
    height: 102px;  
 }

.bank_listSetTall { 
    height: 200px;
 } 

You can use JQuery UI and change your code to something like 您可以使用JQuery UI并将代码更改为类似

            $('.bank_listSetUp').toggleClass('bank_listSetTall',500);

Here 500 is the duration of animation. 这里500是动画的持续时间。

I would also suggest you to have a look at sideToggle() function http://api.jquery.com/slidetoggle/ 我还建议您看看sideToggle()函数http://api.jquery.com/slidetoggle/

i found an solution for this , 我为此找到了解决方案,

jQUERY : jQUERY:

$(document).ready(function(){
 var open = false;
        var bankListMain = $("#thirdPayForm .bank_list_main");
        var ul = bankListMain.find("ul");
        var button = bankListMain.find("span");
        button.click(function () {
            open = !open;
            var height;
            if (open) {
                height = "200px";
                button.addClass("bank_hide");
            } else {
                height = "102px";
                button.removeClass("bank_hide");
            }
            TweenMax.to(ul, 0.5, { css: { height: height } });
        });
});

NOTE : add tweenmax.js to make it work 注意:添加tweenmax.js以使其正常工作

try slideToggle() 尝试slideToggle()

$(document).ready(function(){
    $(".moreBankingBtn").click(function(){
        $('.bank_listSetUp').slideToggle();
    });
})

It doesn't look like it's animating because you're not using the jquery animate function or the slide toggle function, although since you want to animate to two different heights you can't really use the slide functions, because I believe that's just to display and hide. 看起来好像不是在进行动画处理,因为您没有使用jquery动画功能或幻灯片切换功能,尽管由于要动画到两个不同的高度,所以您不能真正使用幻灯片功能,因为我认为这只是为了显示和隐藏。 Maybe try this: 也许试试这个:

$(document).ready(function(){
$(".moreBankingBtn").click(function(){

If ($('.bank_list').hasClass('bank_listSetUp')){
    $('.bank_list').animate({
        height: 200,
}, 'slow').promise().done(function(){

 $('.bank_list').removeClass('bank_listSetUp').addClass('bank_listSetTall');

});
}
else {
    $('.bank_list').animate({
        height: 120,
}, 'slow').promise().done(function(){

 $('.bank_list').addClass('bank_listSetUp').removeClass('bank_listSetTall');
}
});


}); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM