Inhaltsverzeichnis
Vorherige Wörter
JS-Trigger
【1】IIFE
Heim Web-Frontend js-Tutorial Erläuterung der Tab-Funktion in Bootstrap

Erläuterung der Tab-Funktion in Bootstrap

Jul 23, 2017 pm 03:08 PM
bootstrap 选项

Vorherige Wörter

Tabs sind eine sehr häufige Funktion im Web. Wenn der Benutzer auf den Menüpunkt klickt, kann der entsprechende Inhalt ausgeblendet werden. In diesem Artikel wird die grundlegende Verwendung der Bootstrap-Registerkarte im Detail vorgestellt

Die Registerkarte im Bootstrap-Framework besteht hauptsächlich aus zwei Teilen:

1 . Tab Die Menükomponente entspricht den Navigations-Tabs von Bootstrap

2. Die umschaltbare Tab-Panel-Komponente wird in Bootstrap normalerweise durch Tab-Bereich dargestellt

Im Bootstrap-Framework haben Tab-Navigations-Tabs Stile und der Bereich mit der Registerkarte „Panel-Inhalt“ wird ausgeblendet.

.tab-content > .tab-pane {display: none;
}.tab-content > .active {display: block;
}
Nach dem Login kopieren

Die Registerkarte definiert das Datenattribut, um den Umschalteffekt auszulösen. Voraussetzung ist natürlich, dass zuerst bootstrap.js oder tab.js geladen wird. Deklarative Trigger-Registerkarten müssen die folgenden Anforderungen erfüllen:

1. Legen Sie data-toggle="tab"

im Tab-Navigationslink fest. 2. Und legen Sie data-target="corresponding" fest. Der Selektor von das Inhaltsfeld (normalerweise ID)“; wenn es sich um einen Link handelt, können Sie auch href="den Selektor des entsprechenden Inhaltsfelds (normalerweise ID)" verwenden. Die Hauptfunktion besteht darin, dass der Benutzer den entsprechenden Selektor finden kann, wenn Klicken Sie auf die Registerkarte „Inhalt des Panels“.

3. Der Panel-Inhalt wird einheitlich im Tab-Content-Container platziert, und für jedes Content-Panel-Tab-Fenster muss ein unabhängiger Selektor (vorzugsweise ID) und das Datenziel bzw. Datenziel im Tab festgelegt werden . Der Wert von href entspricht

<!-- 选项卡菜单--><ul id="myTab" class="nav nav-tabs" role="tablist"><li class="active"><a href="#bulletin" role="tab" data-toggle="tab">公告</a></li><li><a href="#rule" role="tab" data-toggle="tab">规则</a></li><li><a href="#forum" role="tab" data-toggle="tab">论坛</a></li><li><a href="#security" role="tab"  data-toggle="tab">安全</a></li><li><a href="#welfare" role="tab" data-toggle="tab">公益</a></li></ul><!-- 选项卡面板 --><div id="myTabContent" class="tab-content"><div class="tab-pane active" id="bulletin">公告内容面板</div><div class="tab-pane " id="rule">规则内容面板</div><div class="tab-pane " id="forum">论坛内容面板</div><div class="tab-pane " id="security">安全内容面板</div><div class="tab-pane " id="welfare">公益内容面板</div></div>
Nach dem Login kopieren


[Einblendeffekt]

Um das Panel auszublenden und anzuzeigen während des Umschaltvorgangs Für einen sanfteren Effekt können Sie dem Bedienfeld die Überblendung des Klassennamens hinzufügen, um einen allmählichen Effekt zu erzielen.

Beim Hinzufügen des Fade-Stils muss das anfänglich standardmäßig angezeigte Inhaltsfeld mit dem Klassennamen hinzugefügt werden, andernfalls kann der Benutzer seinen Inhalt nicht sehen

<!-- 选项卡菜单--><ul id="myTab" class="nav nav-tabs" role="tablist"><li class="active"><a href="#bulletin" role="tab" data-toggle="tab">公告</a></li><li><a href="#rule" role="tab" data-toggle="tab">规则</a></li><li><a href="#forum" role="tab" data-toggle="tab">论坛</a></li><li><a href="#security" role="tab"  data-toggle="tab">安全</a></li><li><a href="#welfare" role="tab" data-toggle="tab">公益</a></li></ul><!-- 选项卡面板 --><div id="myTabContent" class="tab-content"><div class="tab-pane fade in active" id="bulletin">公告内容面板</div><div class="tab-pane fade" id="rule">规则内容面板</div><div class="tab-pane fade" id="forum">论坛内容面板</div><div class="tab-pane fade" id="security">安全内容面板</div><div class="tab-pane fade" id="welfare">公益内容面板</div></div>
Nach dem Login kopieren


【Kapsel-Tab】

In Bootstrap kann die Navigation in Kapsel-Navigationspillen zusätzlich zu Navigations-Tabs mit Tab-Umschaltfunktion auch über Tabs-Funktion verfügen. Ersetzen Sie einfach Nav-Tabs durch Nav-Pillen. Ein weiterer wichtiger Punkt ist, data-toggle="tab" durch data-toggle="pill"

<!-- 选项卡菜单--><ul id="myTab" class="nav nav-pills" role="tablist"><li class="active"><a href="#bulletin" role="tab" data-toggle="pill">公告</a></li><li><a href="#rule" role="tab" data-toggle="pill">规则</a></li><li><a href="#forum" role="tab" data-toggle="pill">论坛</a></li><li><a href="#security" role="tab" data-toggle="pill">安全</a></li><li><a href="#welfare" role="tab" data-toggle="pill">公益</a></li></ul><!-- 选项卡面板 --><div id="myTabContent" class="tab-content"><div class="tab-pane fade in active" id="bulletin">公告内容面板</div><div class="tab-pane fade" id="rule">规则内容面板</div><div class="tab-pane fade" id="forum">论坛内容面板</div><div class="tab-pane fade" id="security">安全内容面板</div><div class="tab-pane fade" id="welfare">公益内容面板</div></div>
Nach dem Login kopieren


zu ersetzen

JS-Trigger

Zusätzlich zur Einstellung von Datenumschaltung in HTML zum Auslösen von Tabs kann er auch direkt über JavaScript aufgerufen werden.

Rufen Sie die Methode tab("show") im Klickereignis jedes Links auf, um den entsprechenden Inhalt des Beschriftungsfelds anzuzeigen. Löschen Sie für das obige Beispiel die benutzerdefinierten Attribute data-toggle="tab" oder data-toggle="pill" in HTML und rufen Sie dann

$(function(){
    $("#myTab a").click(function(e){
        e.preventDefault();
        $(this).tab("show");
    });
})
Nach dem Login kopieren
公告内容面板
规则内容面板
论坛内容面板
安全内容面板
公益内容面板
<script>$(function(){     $(&quot;#myTab a&quot;).click(function(e){         e.preventDefault();         $(this).tab(&quot;show&quot;);     }); })</script>
Nach dem Login kopieren


【Veranstaltungsabonnement】

show.bs.tab        show方法调用之后立即触发该事件
shown.bs.tab      此事件在tab已经显示出来(并且同时在 CSS 过渡效果完成)之后被触发
hide.bs.tab        hide方法调用之后立即触发该事件。
hidden.bs.tab     此事件在tab被隐藏(并且同时在 CSS 过渡效果完成)之后被触发
Nach dem Login kopieren
<!-- 选项卡菜单-->
<ul id="myTab" class="nav nav-pills" role="tablist">
    <li class="active"><a href="#bulletin" role="tab">公告</a></li>
    <li><a href="#rule" role="tab" >规则</a></li>
    <li><a href="#forum" role="tab" >论坛</a></li>
    <li><a href="#security" role="tab" >安全</a></li>
    <li><a href="#welfare" role="tab" >公益</a></li>
</ul>
<!-- 选项卡面板 -->
<div id="myTabContent" class="tab-content">
    <div class="tab-pane fade in active" id="bulletin">公告内容面板</div>
    <div class="tab-pane fade" id="rule">规则内容面板</div>
    <div class="tab-pane fade" id="forum">论坛内容面板</div>
    <div class="tab-pane fade" id="security">安全内容面板</div>
    <div class="tab-pane fade" id="welfare">公益内容面板</div>
</div>
<script>$(function(){
    $("#myTab a").click(function(e){
        e.preventDefault();
        $(this).tab("show");
    });
    $("#myTab").on("show.bs.tab",function(e){
         $(e.target).css('outline','1px solid black');    
    }).on("hide.bs.tab",function(e){
        $(e.target).css('outline','none');  
    })
})</script>
Nach dem Login kopieren


JS-Quellcode

【1】IIFE

Verwenden Sie die Sofortaufruffunktion, um zu verhindern, dass der Code im Plug-In ausläuft und so eine geschlossene Schleife entsteht und kann nur von jQuerys fn aus erweitert werden

+function ($) {//使用es5严格模式'use strict';//}(window.jQuery);
Nach dem Login kopieren
【2】Anfangseinstellungen

  var Tab = function (element) {//指定当前元素this.element = $(element)
  }  //版本号为3.3.7
  Tab.VERSION = '3.3.7'  //动画时间为150ms
  Tab.TRANSITION_DURATION = 150
Nach dem Login kopieren
【3】Plug-in-Kerncode

  //show()方法用于触发show事件,调用activate原型方法,触发shown事件
  Tab.prototype.show = function () {//当前tabvar $this    = this.element//找到最近的ulvar $ul      = $this.closest('ul:not(.dropdown-menu)')//找到data-target值var selector = $this.data('target')//如果data-target值不存在,查找href值if (!selector) {
      selector = $this.attr('href')      //IE7特殊处理  selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') 
    }//如果当前tab已经是活动状态了,即父元素li上已经有active样式的话,直接返回if ($this.parent('li').hasClass('active')) return//找到上一个元素,即上一个带有active样式的li里的a元素var $previous = $ul.find('.active:last a')//设置hide事件var hideEvent = $.Event('hide.bs.tab', {
      relatedTarget: $this[0]
    })//设置show事件var showEvent = $.Event('show.bs.tab', {
      relatedTarget: $previous[0]
    })//触发hide事件及show事件    $previous.trigger(hideEvent)
    $this.trigger(showEvent)//如果自定义回调中阻止了默认行为,则不再继续处理if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return//要激活显示的面板,即target或href里的值所对应的元素var $target = $(selector)//高亮显示当前tabthis.activate($this.closest('li'), $ul)//显示对应的面板,并在回调里触发hidden及shown事件this.activate($target, $target.parent(), function () {
      $previous.trigger({
        type: 'hidden.bs.tab',
        relatedTarget: $this[0]
      })
      $this.trigger({
        type: 'shown.bs.tab',
        relatedTarget: $previous[0]
      })
    })
  }  //active样式的应用,面板的显示和隐藏,以及tab的高亮与反高亮
  Tab.prototype.activate = function (element, container, callback) {//查找当前容器所有有active样式的元素var $active    = container.find('> .active')//判断是使用回调还是动画var transition = callback      && $.support.transition      && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)function next() {
      $active//去除其他元素的active样式.removeClass('active')//包括li元素里面的下拉菜单里的active样式也要去除.find('> .dropdown-menu > .active')
          .removeClass('active')
        .end()
        .find('[data-toggle="tab"]')
          .attr('aria-expanded', false)

      element//给当前被单击的元素添加active高亮样式.addClass('active')
        .find('[data-toggle="tab"]')
          .attr('aria-expanded', true)      if (transition) {//如果支持动画,就重绘页面element[0].offsetWidth //并添加in样式,去除透明element.addClass('in')
      } else {//否则删除fadeelement.removeClass('fade')
      }      //如果单击的是下拉菜单里的项目  if (element.parent('.dropdown-menu').length) {
        element          //打到最近的li.dropdown元素进行高亮  .closest('li.dropdown')
            .addClass('active')
          .end()
          .find('[data-toggle="tab"]')
            .attr('aria-expanded', true)
      }      //如果有回调就执行回调  callback && callback()
    }//如果支持动画$active.length && transition ?  $active//在动画结束后执行next().one('bsTransitionEnd', next)
        .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
      next()

    $active.removeClass('in')
  }
Nach dem Login kopieren
【4】jQuery-Plug-in-Definition

  function Plugin(option) {//根据选择器,遍历所有符合规则的元素return this.each(function () {      var $this = $(this)      //获取自定义属性bs.tab的值  var data  = $this.data('bs.tab')      //如果值不存在,则将Tab实例设置为bs.tab值  if (!data) $this.data('bs.tab', (data = new Tab(this)))      //如果option传递了string,则表示要执行某个方法    if (typeof option == 'string') data[option]()
    })
  }  var old = $.fn.tab  //保留其他库的$.fn.tab代码(如果定义的话),以便在noConflict之后可以继续使用该老代码
  $.fn.tab             = Plugin  //重设插件构造器,可以通过该属性获取插件的真实类函数
  $.fn.tab.Constructor = Tab
Nach dem Login kopieren
【5】Anti-Konflikt-Verarbeitung

  $.fn.tab.noConflict = function () {     //恢复以前的旧代码$.fn.tab = old//将$.fn.tab.noConflict()设置为Bootstrap的Tab插件return this
  }
Nach dem Login kopieren
【6】Bind-Trigger-Ereignis

  var clickHandler = function (e) {//阻止默认行为    e.preventDefault()//触发show()方法Plugin.call($(this), 'show')
  }

  $(document)//在document上绑定单击事件.on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
    .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
Nach dem Login kopieren

 

Das obige ist der detaillierte Inhalt vonErläuterung der Tab-Funktion in Bootstrap. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie die Bootstrap -Taste So verwenden Sie die Bootstrap -Taste Apr 07, 2025 pm 03:09 PM

Wie benutze ich die Bootstrap -Taste? Führen Sie Bootstrap -CSS ein, um Schaltflächenelemente zu erstellen, und fügen Sie die Schaltfläche "Bootstrap" hinzu, um Schaltflächentext hinzuzufügen

Wie man vertikale Zentrierung von Bootstrap macht Wie man vertikale Zentrierung von Bootstrap macht Apr 07, 2025 pm 03:21 PM

Verwenden Sie Bootstrap, um die vertikale Zentrierung zu implementieren: FlexBox-Methode: Verwenden Sie den D-Flex, den Justify-Content-Center und die Ausrichtungsklassen aus Align-Item-Center, um Elemente in den Flexbox-Behälter zu platzieren. Methode für Ausstellungs-Iitem-Center-Klassen: Bei Browsern, die Flexbox nicht unterstützen, verwenden Sie die Klasse aus Align-items-Center-Klasse, vorausgesetzt, das übergeordnete Element hat eine definierte Höhe.

So ändern Sie Bootstrap So ändern Sie Bootstrap Apr 07, 2025 pm 03:18 PM

Um die Größe der Elemente in Bootstrap anzupassen, können Sie die Dimensionsklasse verwenden, einschließlich: Einstellbreite:.

So laden Sie Dateien auf Bootstrap hoch So laden Sie Dateien auf Bootstrap hoch Apr 07, 2025 pm 01:09 PM

Die Datei -Upload -Funktion kann über Bootstrap implementiert werden. Die Schritte sind wie folgt: Startstrap CSS und JavaScript -Dateien einführen; Dateieingabefelder erstellen; Datei -Upload -Schaltflächen erstellen; Behandeln Sie Datei -Uploads (verwenden Sie FormData, um Daten zu sammeln und dann an den Server zu senden). benutzerdefinierter Stil (optional).

So fügen Sie Bilder auf Bootstrap ein So fügen Sie Bilder auf Bootstrap ein Apr 07, 2025 pm 03:30 PM

Es gibt verschiedene Möglichkeiten, Bilder in Bootstrap einzufügen: Bilder direkt mit dem HTML -IMG -Tag einfügen. Mit der Bootstrap -Bildkomponente können Sie reaktionsschnelle Bilder und weitere Stile bereitstellen. Legen Sie die Bildgröße fest und verwenden Sie die IMG-Fluid-Klasse, um das Bild anpassungsfähig zu machen. Stellen Sie den Rand mit der img-beliebten Klasse ein. Stellen Sie die abgerundeten Ecken ein und verwenden Sie die IMG-Rund-Klasse. Setzen Sie den Schatten, verwenden Sie die Schattenklasse. Größen Sie die Größe und positionieren Sie das Bild im CSS -Stil. Verwenden Sie mit dem Hintergrundbild die CSS-Eigenschaft im Hintergrund.

Wie ändere ich die Größe einer Bootstrap -Liste? Wie ändere ich die Größe einer Bootstrap -Liste? Apr 07, 2025 am 10:45 AM

Die Größe einer Bootstrap -Liste hängt von der Größe des Containers ab, der die Liste enthält, nicht die Liste selbst. Die Verwendung von Bootstraps Grid -System oder Flexbox kann die Größe des Containers steuern und dadurch indirekt die Listenelemente ändern.

So schreiben Sie ein Karussellbild auf Bootstrap So schreiben Sie ein Karussellbild auf Bootstrap Apr 07, 2025 pm 12:54 PM

Erstellen eines Karusselliagramms mit Bootstrap erfordert die folgenden Schritte: Erstellen Sie einen Container mit einem Karusselldiagramm mit der Karussellklasse. Fügen Sie dem Behälter ein Karussellbild mit der Karussell-Item-Klasse und der aktiven Klasse hinzu (nur für das erste Bild). Fügen Sie Kontrolltasten mit den Klassen mit Karussell-Kontroll- und Karussell-Kontroll-Next hinzu. Fügen Sie eine Karussell-Indikatoren-Metrik (kleine Punkte) mit der Karussell-Indicators-Klasse (optional) hinzu. Richten Sie die automatische Wiedergabe ein und fügen Sie Data-BS-Ride = "Carousel &" auf dem Karussell-Container hinzu.

Wie man Bootstrap Layout layer Wie man Bootstrap Layout layer Apr 07, 2025 pm 02:24 PM

Um Bootstrap zum Layout einer Website zu verwenden, müssen Sie ein Netzsystem verwenden, um die Seite in Container, Zeilen und Spalten zu unterteilen. Fügen Sie zuerst den Container hinzu, fügen Sie dann die Zeilen hinzu, fügen Sie die Spalten in der Zeile hinzu und fügen Sie schließlich den Inhalt in der Spalte hinzu. Die Responsive -Layout -Funktion von Bootstrap passt das Layout automatisch anhand von Haltepunkten (XS, SM, MD, LG, XL) an. Unter Verwendung von Responsive -Klassen können verschiedene Layouts unter verschiedenen Bildschirmgrößen erreicht werden.

See all articles