jquery带步骤推进的TAB选项卡插件

所属分类: 网页特效-Tab选项卡    2023-11-22 04:28:28

jquery带步骤推进的TAB选项卡插件 ie兼容6
反馈问题  查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

jquery带步骤推进的TAB选项卡插件(共3个文件)

    • jquery-bootstrap-tab-wizard.min.js
    • index.js
    • index.html

使用方法

(function ($) {
    /**
     * @return {function|boolean}
     */
    $.fn.TabWizard = function (options) {
        if (typeof $.fn.tab !== 'function') {
            console.warn('TabWizard depends on Bootstrap 4 Tab plugin');
            return false;
        }
        let self = this;
        var visibleButtons = [];
        let settings = $.extend({
            showTabs: true,
            additionalButtons: [],
            nextButtonClass: '.btnNext',
            previousButtonClass: '.btnPrevious',
            finishButtonText: 'Finish',
            onNext: function (callback) {
                if (typeof  callback === 'function') {
                    callback();
                }
            },
            onPrevious: function (callback) {
                if (typeof  callback === 'function') {
                    callback();
                }
            },
            onFinish: function (callback) {
                if (typeof  callback === 'function') {
                    callback();
                }
            }
        }, options);

        function hideAdditionalButtons() {
            let buttons = settings.additionalButtons;
            for (let index in buttons) {
                for (let btn in buttons[index].buttons) {
                    $(self).find(buttons[index].buttons[btn]).addClass('d-none');
                    $(self).find(buttons[index].buttons[btn]).removeClass('d-block');
                }
            }
        }

        function updateNextButtonState(e) {
            let btn = $(self).find(settings.nextButtonClass);
            let tab = $(e.target).attr('href');
            $(self).find('.tab-content').find($(e.target));
            if ($(self).find(tab).is(':last-child')) {
                btn.addClass('btnFinish').text(settings.finishButtonText);
            } else {
                $(btn).removeClass('btnFinish').text('Next');
            }
        }

        function updateAdditionalButtonsState(btn) {
            let tab = $(btn).attr('href');

            let visible = settings.additionalButtons.filter(function (group) {
                if (group.tab === tab) {
                    if (group.buttons) {
                        return group.buttons;
                    }
                }
            })[0];
            hideAdditionalButtons();
            if (visible) {
                let btns = visible.buttons.join(', ');
                console.log(btns);
                $(self).find(btns).removeClass('d-none');
                $(self).find(btns).addClass('d-block');
            }
        }

        if (!settings.showTabs) {
            $(self).find('.nav-tabs').hide();
        }
        hideAdditionalButtons();
        let activeTab = $(self).find('.nav-tabs a.active');
        console.log(activeTab);
        updateAdditionalButtonsState(activeTab);

        $(self).find(settings.nextButtonClass).click(function () {
            let btn = this;
            if ($(btn).hasClass('btnFinish')) {
                settings.onFinish();
            } else {
                $(self).find('.tab-content .tab-pane').each(function (pane) {

                    if ($(this).hasClass('active') && $(this).next('.tab-pane').length) {
                        let me = pane + 1;
                        $(self).find(`.nav-tabs`).find(`li:nth-child(${me + 1}) a`).tab('show');
                        return false;
                    }
                });
            }
        });
        $(self).find('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
            updateNextButtonState(e);
            updateAdditionalButtonsState(this);
        });

        $(self).find(settings.previousButtonClass).click(function () {
            let btn = this;
            $(self).find('.tab-content .tab-pane').each(function (pane) {
                if ($(this).hasClass('active') && $(this).prev('.tab-pane').length) {
                    let me = pane + 1;
                    $(self).find(`.nav-tabs`).find(`li:nth-child(${me - 1}) a`).tab('show');
                    return false;
                }
            });
        });
        return this;
    };
}(jQuery));

站长提示:
1. 平台上所有素材资源,需注册登录会员方能正常下载。
2. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励20K币
3. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
4. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / Tab选项卡

jquery响应式带图标的导航菜单TAB选项卡插件

一款导航菜单带小图标的选项卡插件,点击菜单动画显示文本内容,很实用。
  Tab选项卡
 299  

jquery一款绿色TAB选项卡带自动切换特效代码

绿色风格tab选项卡导航菜单,包含两种特效:自动切换,鼠标单击事件。
  Tab选项卡
 212  

jquery带多风格多功能TAB选项卡特效代码

一款带多种风格多功能选项卡切换插件,包含:鼠标悬停切换、鼠标点击切换、带回调等。
  Tab选项卡
 128  

jquery带多种不同风格自定义tab选项卡特效代码

带多种风格的tab选项卡特效,包含:默认风格、沉浸式、横条着色、抽屉式。
  Tab选项卡
 205  

评论数(0) 回复有机会获得K币 用户协议

^_^ 还没有人评论,快来抢个沙发!
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论