更改/添加jQuery选项卡转换

Changing / Adding a jQuery Tab transition

本文关键字:转换 选项 jQuery 添加 更改      更新时间:2023-09-26

我正在一个使用Bootstrap响应框架的网站上工作。我已经添加了内置的选项卡,它们运行得很好,但我希望新选项卡在选中时向左滚动。此时,新选项卡仅在选中时显示,不进行转换。

您可以在此处查看来源-单击"Creative Enablement"查看选项卡区域:http://www.chaosdesign.com/chaos-2012/

当前jQuery选项卡的来源如下,

谢谢你的光临!

/* ========================================================
 * bootstrap-tab.js v2.0.0
 * http://twitter.github.com/bootstrap/javascript.html#tabs
 * ========================================================
 * Copyright 2012 Twitter, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * ======================================================== */

!function( $ ){
  "use strict"
 /* TAB CLASS DEFINITION
  * ==================== */
  var Tab = function ( element ) {
    this.element = $(element)
  }
  Tab.prototype = {
    constructor: Tab
  , show: function () {
      var $this = this.element
        , $ul = $this.closest('ul:not(.dropdown-menu)')
        , selector = $this.attr('data-target')
        , previous
        , $target
      if (!selector) {
        selector = $this.attr('href')
        selector = selector && selector.replace(/.*(?=#[^'s]*$)/, '') //strip for ie7
      }
      if ( $this.parent('li').hasClass('active') ) return
      previous = $ul.find('.active a').last()[0]
      $this.trigger({
        type: 'show'
      , relatedTarget: previous
      })
      $target = $(selector)
      this.activate($this.parent('li'), $ul)
      this.activate($target, $target.parent(), function () {
        $this.trigger({
          type: 'shown'
        , relatedTarget: previous
        })
      })
    }
  , activate: function ( element, container, callback) {
      var $active = container.find('> .active')
        , transition = callback
            && $.support.transition
            && $active.hasClass('fade')
      function next() {
        $active
          .removeClass('active')
          .find('> .dropdown-menu > .active')
          .removeClass('active')
        element.addClass('active')
        if (transition) {
          element[0].offsetWidth // reflow for transition
          element.addClass('in')
        } else {
          element.removeClass('fade')
        }
        if ( element.parent('.dropdown-menu') ) {
          element.closest('li.dropdown').addClass('active')
        }
        callback && callback()
      }
      transition ?
        $active.one($.support.transition.end, next) :
        next()
      $active.removeClass('in')
    }
  }

 /* TAB PLUGIN DEFINITION
  * ===================== */
  $.fn.tab = function ( option ) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('tab')
      if (!data) $this.data('tab', (data = new Tab(this)))
      if (typeof option == 'string') data[option]()
    })
  }
  $.fn.tab.Constructor = Tab

 /* TAB DATA-API
  * ============ */
  $(function () {
    $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
      e.preventDefault()
      $(this).tab('show')
    })
  })
}( window.jQuery )

您可以简单地将<li>移动为<ul>中的第一个元素。。。

$('#tab li a').click(function() {
   $(this).parents('ul').prepend($(this).parent()); 
});​

使用标记的简单示例http://jsfiddle.net/u2EqM/1/