智能向导是一个jQuery向导插件,可以将长内容拆分为一个循序渐进的交互式向导界面。非常适合表单向导和基于步骤的导游。
1.在网页中加载Bootstrap的样式表(可选,自v5.0.0起)。
<link rel="stylesheet" href="bootstrap.min.css" />
2.加载核心样式表智能向导.css
以及您在网页中选择的主题CSS。
<!-- Core Stylesheet --> <link href="./dist/css/smart_wizard.min.css" rel="stylesheet" /> <!-- Optional SmartWizard themes --> <link href="./dist/css/smart_wizard_arrows.min.css" rel="stylesheet"> <link href="./dist/css/smart_wizard_dots.min.css" rel="stylesheet"> <link href="./dist/css/smart_wizard_round.min.css" rel="stylesheet"> <link href="./dist/css/smart_wizard_square.min.css" rel="stylesheet"> <!-- All In One --> <link href="./dist/css/smart_wizard_all.min.css" rel="stylesheet" />
3.智能向导的基本HTML结构。
<div id="smartwizard"> <ul class="nav"> <li> <a class="nav-link" href="#step-1"> Step 1 </a> </li> <li> <a class="nav-link" href="#step-2"> Step 2 </a> </li> <li> <a class="nav-link" href="#step-3"> Step 3 </a> </li> ... more nav items here ... </ul> <div class="tab-content"> <div id="step-1" class="tab-pane" role="tabpanel"> Step 1 </div> <div id="step-2" class="tab-pane" role="tabpanel"> Step 2 </div> <div id="step-3" class="tab-pane" role="tabpanel"> Step 3 </div> ... more steps here ... </div> </div>
4.在网页末尾加载jQuery库和jQuery智能向导插件的脚本。
<script src="/path/to/cdn/jquery.min.js"></script> <script src="./dist/js/jquery.smartWizard.min.js"></script>
5.使用默认选项初始化智能向导。就是这样。
$('#smartwizard').smartWizard();
6.这个例子展示了如何通过AJAX从外部数据源加载步骤:
<ul class="nav"> <li class="nav-item"> <a class="nav-link" href="#step-1" data-repo="jquery-smarttab"> <strong>SmartTab</strong><br />repository details from GitHub </a> </li> <li class="nav-item"> <a class="nav-link" href="#step-2" data-repo="smartwizard"> <strong>SmartWizard</strong><br />repository details from GitHub </a> </li> <li class="nav-item"> <a class="nav-link" href="#step-3" data-repo="jquery-smartcart"> <strong>SmartCart</strong><br />repository details from GitHub </a> </li> </ul>
$("#smartwizard").on("stepContent", function(e, anchorObject, stepIndex, stepDirection) { var repo = anchorObject.data('repo'); var ajaxURL = "https://api.npms.io/v2/package/" + repo; // Return a promise object return new Promise((resolve, reject) => { // Ajax call to fetch your content $.ajax({ method : "GET", url : ajaxURL, beforeSend: function( xhr ) { // Show the loader $('#smartwizard').smartWizard("loader", "show"); } }).done(function( res ) { // console.log(res); var html = '<h2>Ajax data about ' + repo + ' loaded from GitHub</h2>'; html += '<br>URL: <strong>' + ajaxURL + '</strong>'; html += '<br>Name: <strong>' + res.collected.metadata.name + '</strong>'; html += '<br>Description: ' + res.collected.metadata.description; html += '<br>Homepage: <a href="' + res.collected.github.homepage + '" >'+ res.collected.github.homepage +'</a>'; html += '<br>Keywords: ' + res.collected.metadata.keywords.join(', '); // html += '<br>Clone URL: ' + res.clone_url; html += '<br>Stars: ' + res.collected.github.starsCount; html += '<br>Forks: ' + res.collected.github.forksCount; html += '<br>Watchers: ' + res.collected.github.subscribersCount; html += '<br>Open Issues: ' + res.collected.github.issues.openCount + '/' + res.collected.github.issues.count; html += '<br><br>Popularity: ' + parseInt(res.score.detail.popularity * 100); html += '<br>Quality: ' + parseInt(res.score.detail.quality * 100); html += '<br>Maintenance: ' + parseInt(res.score.detail.maintenance * 100); // Resolve the Promise with the tab content resolve(html); // Hide the loader $('#smartwizard').smartWizard("loader", "hide"); }).fail(function(err) { // Reject the Promise with error message to show as tab content reject( "An error loading the resource" ); // Hide the loader $('#smartwizard').smartWizard("loader", "hide"); }); }); });
7.所有可用于轻松自定义向导的默认选项。
$('#smartwizard').smartWizard({ // Initial selected step, 0 = first step selected: 0, // 'arrows', 'square', 'round', 'dots' theme: 'basic', // Nav menu justification. true/false justified: true, // Automatically adjust content height autoAdjustHeight:true, // Show url hash based on step enableURLhash: true, // Enable the back button support backButtonSupport: true, // Animation options transition: { // Animation effect on navigation, none|fade|slideHorizontal|slideVertical|slideSwing|css(Animation CSS class also need to specify) animation: 'none', // Animation speed. Not used if animation is 'css' speed: '400', // Animation easing. Not supported without a jQuery easing plugin. Not used if animation is 'css' easing: '', // Only used if animation is 'css'. Animation CSS prefix prefixCss: '', // Only used if animation is 'css'. Step show Animation CSS on forward direction fwdShowCss: '', // Only used if animation is 'css'. Step hide Animation CSS on forward direction fwdHideCss: '', // Only used if animation is 'css'. Step show Animation CSS on backward direction bckShowCss: '', // Only used if animation is 'css'. Step hide Animation CSS on backward direction bckHideCss: '', }, // Step bar options toolbar: { // none|top|bottom|both position: 'bottom', // show/hide a Next button showNextButton: true, // show/hide a Previous button showPreviousButton: true, // Extra html to show on toolbar extraHtml: '' }, // Anchor options anchor: { // Enable/Disable anchor navigation enableNavigation: true, // Activates all anchors clickable always enableNavigationAlways: false, // Add done state on visited steps enableDoneState: true, // When a step selected by url hash, all previous steps are marked done markPreviousStepsAsDone: true, // While navigate back, done state will be cleared unDoneOnBackNavigation: false, // Enable/Disable the done state navigation enableDoneStateNavigation: true }, // Keyboard options keyboard: { // Enable/Disable keyboard navigation(left and right keys are used if enabled) keyNavigation: true, // Left key code keyLeft: [37], // Right key code keyRight: [39] }, // Language variables for button lang: { next: 'Next', previous: 'Previous' }, // CSS Class settings style: { mainCss: 'sw', navCss: 'nav', navLinkCss: 'nav-link', contentCss: 'tab-content', contentPanelCss: 'tab-pane', themePrefixCss: 'sw-theme-', anchorDefaultCss: 'default', anchorDoneCss: 'done', anchorActiveCss: 'active', anchorDisabledCss: 'disabled', anchorHiddenCss: 'hidden', anchorErrorCss: 'error', anchorWarningCss: 'warning', justifiedCss: 'sw-justified', btnCss: 'sw-btn', btnNextCss: 'sw-btn-next', btnPrevCss: 'sw-btn-prev', loaderCss: 'sw-loading', progressCss: 'progress', progressBarCss: 'progress-bar', toolbarCss: 'toolbar', toolbarPrefixCss: 'toolbar-', }, // Array of disabled Steps disabledSteps: [], // Highlight step with errors errorSteps: [], // Array Steps warning warningSteps: [], // Hidden steps hiddenSteps: [], // Callback function for content loading getContent: null, });
8.可用的事件处理程序。
// When the plugin is initialized $("#smartwizard").on("initialized", function(e) { // do something }); // When the plugin is loaded $("#smartwizard").on("loaded", function(e) { // do something }); // Triggered just before leaving from a step $("#smartwizard").on("leaveStep", function(e, anchorObject, stepIndex, nextStepNumber, stepDirection) { // do something }); // When a step is shown $("#smartwizard").on("showStep", function(e, anchorObject, stepIndex, stepDirection, stepPosition) { // do something });
9.创建自己的向导控件的可用API方法。
// goto a specific step $('#smartwizard').smartWizard('goToStep', stepIndex, force); // update options $('#smartwizard').smartWizard('setOptions', stepIndex); // goto the next step $('#smartwizard').smartWizard('next'); // goto the prev step $('#smartwizard').smartWizard('prev'); // reset the wizard $('#smartwizard').smartWizard('reset'); // change the state of step(s) $('#smartwizard').smartWizard("setState", [1,3], "disable"); $('#smartwizard').smartWizard("setState", [2], "hide"); // unset the state of step(s) $('#smartwizard').smartWizard("unsetState", [1,3], "disable"); // get the current step index var stepIndex = $('#smartwizard').smartWizard("getStepIndex"); // show/hide content loader $('#smartwizard').smartWizard("loader", "show"); $('#smartwizard').smartWizard("loader", "hide"); // get options info $('#smartwizard').smartWizard("getOptions"); // get step info $('#smartwizard').smartWizard("getStepInfo"); // adjust the content height of the current step $('#smartwizard').smartWizard("fixHeight");
版本6.0.6(2022-10-03)
版本6.0.5(2022-08-08)
版本6.0.4(2022-07-31)
版本6.0.3(2022-07-31)
版本6.0.1(2022-06-27)
v5.1.1 (2020-07-11)
v5.0.0版本(2020-05-24)
版本4.4.1(2020-02-16)
第4.3.1版(2018年3月12日)
版本4.2.2(2017-03-27)
v4.2.1(2017年3月27日)
第4.1.7版(2017年2月21日)
第4.1.5版(2017-02-01)
第4.1.2版(2017-01-09)
第4.1.1版(2016-12-08)
2016-11-16