【问题标题】:Combine two tab scripts to make one将两个选项卡脚本组合成一个
【发布时间】:2016-09-03 09:26:17
【问题描述】:

如果有人可以结合下面找到的两个脚本,我将不胜感激。我希望能够将第一个脚本的平滑折叠功能与第二个脚本的单个选项卡一次扩展功能结合起来。我无法完全添加代码,所以如果需要,请参阅链接。

我真的很感激!

脚本 1:(完整 -http://jsfiddle.net/HcJJZ/3/

$(document).ready(function() {
$.effects.effect.heightFade = function(o, done) {
    var el = $(this),
        mode = $.effects.setMode(el, o.mode || "show");
    el.animate({
        height: mode,
        opacity: mode
    }, {
        queue: false,
        complete: done
    });
};
$('.mytabs').tabs({
    hide: "heightFade",
    show: "heightFade",
    collapsible: true,
    selected: -1 
});

脚本 2:(完整 - http://jsfiddle.net/fb0z3ezd/4/

var inactiveOpts = {
active: false,
show: {
    effect: 'blind'
}
var $tabs = $(".tabs").each(function () {
var currTab = this,
    tabsOpts = {
        collapsible: true,
        beforeActivate: function (evt, ui) {
            $tabs.not(this).tabs("option", inactiveOpts)
        },
        activate: function (evt, ui) {
            $(currTab).tabs('option', {
                show: false
            });
        }
    }
$.extend(tabsOpts, inactiveOpts);
$(this).tabs(tabsOpts);

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-ui-tabs jquery-effects


    【解决方案1】:

    试试这个:

    这里是 JSFIDDLE:enter link description here

      $(document).ready(function() {
        $.effects.effect.heightFade = function(o, done) {
            var el = $(this),
                mode = $.effects.setMode(el, o.mode || "show");
            el.animate({
                height: mode,
                opacity: mode
            }, {
                queue: false,
                complete: done
            });
        };
        $('#tabvanilla').tabs({
            hide: "heightFade",
            show: "heightFade",
            collapsible: true
        });
    
        $('#flexslider1').flexslider({
            animation: "fade",
            pauseOnHover: true,
            controlsContainer: ".flex-container1",
            directionNav: true,
            controlNav: true
        });
    
        $('#flexslider2').flexslider({
            animation: "fade",
            slideshow: false,
            pauseOnHover: true,
            useCSS: false,
            controlsContainer: ".flex-container2",
            directionNav: true,
            controlNav: true
        });
    var inactiveOpts = {
        active: false,
        show: {
            effect: 'blind'
        }
    }
    
    var $tabs = $(".tabs").each(function () {
        var currTab = this,
            tabsOpts = {
                collapsible: true,
                beforeActivate: function (evt, ui) {
                    $tabs.not(this).tabs("option", inactiveOpts)
                },
                activate: function (evt, ui) {
                    $(currTab).tabs('option', {
                        show: false
                    });
                }
            }
        $.extend(tabsOpts, inactiveOpts);
        $(this).tabs(tabsOpts);
    
    });
    });
    

    希望对你有帮助

    【讨论】:

    • 哇,很棒的开始。你几乎拥有它。你有没有机会让折叠和展开一样平滑?您可以将其应用于所有选项卡,甚至应用于同一行/组中的选项卡吗?非常感谢!
    • @khangp,如果你有帮助,请勾选我的解决方案;)thanx
    • Praguan,不幸的是,它并没有按照我想要的方式工作。你按原样组合了脚本,但我问的有点不同。在前三行中,当标签崩溃时,它们会迅速折叠,不顺畅。您如何将平滑效果应用于折叠?
    猜你喜欢
    • 2014-10-02
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    相关资源
    最近更新 更多