Table des matières
Mots précédents
État de chargement
Bouton radio de simulation
Simulation de sélections multiples
État du bouton
Déclencheur JS
Code source JS
Maison interface Web js tutoriel Utilisation du plugin de bouton dans Bootstrap

Utilisation du plugin de bouton dans Bootstrap

Jul 21, 2017 pm 05:06 PM
bootstrap 按钮 插件

Mots précédents

Le plug-in de bouton fournit un ensemble de fonctions qui peuvent contrôler plusieurs états du bouton, tels que l'état désactivé du bouton, l'état de chargement, l'état normal, etc. Cet article présentera le plug-in du bouton Bootstrap

État de chargement

en détail. Vous pouvez concevoir des invites d'état via des boutons Lorsque vous cliquez sur le bouton, les informations sur l'état de chargement seront affichées. Par exemple, cliquer sur le bouton "Charger" déclenchera l'état de chargement du bouton

En ajoutant data-loading-text="Loading..." vous pouvez définir l'état de chargement du bouton, mais à partir de la v3.3.5, cette fonctionnalité n'est plus disponible Il est recommandé d'utiliser et a été supprimé dans la version v4

[Remarque] Si data-loading-text n'est pas défini, lorsque le texte du bouton est en état de chargement, l'affichage par défaut est 'loading...'

<button class="btn btn-primary" data-loading-text="正在加载中,请稍等..." type="button" id="loaddingBtn">加载</button><script>$(function(){
    $("#loaddingBtn").click(function () {var $btn = $(this).button("loading");
        setTimeout(function(){
            $btn.button('reset')
        },1000);
      });
});    
</script>
Copier après la connexion

Bouton radio de simulation

Le bouton radio de simulation consiste à mettre en œuvre une opération de sélection unique via un ensemble de boutons. L'utilisation d'un groupe de boutons pour simuler un groupe de boutons radio peut rendre la conception plus personnalisée et personnaliser un groupe de boutons radio plus beau

Dans le plug-in de bouton du framework Bootstrap, vous pouvez personnaliser les attributs du groupe de boutons data-toggle="buttons"

<div class="btn-group" data-toggle="buttons"><label class="btn btn-primary"><input type="radio" name="options" id="options1">男</label><label class="btn btn-primary"><input type="radio" name="options" id="options2">女</label></div>
Copier après la connexion


Simulation de sélections multiples

Utiliser des groupes de boutons pour simuler des boutons à cocher C'est le même que le bouton radio simulé et a le même effet. Il est également obtenu en personnalisant data-toggle="buttons" sur le groupe de boutons. La seule différence est de remplacer input[type="radio"] par input[type="checkbox"]

<div class="btn-group" data-toggle="buttons"><label class="btn btn-primary"><input type="checkbox" name="options" id="options1">电影</label><label class="btn btn-primary"><input type="checkbox" name="options" id="options2">音乐</label><label class="btn btn-primary"><input type="checkbox" name="options" id="options3">游戏</label><label class="btn btn-primary"><input type="checkbox" name="options" id="options4">摄影</label></div>
Copier après la connexion


État du bouton

L'utilisation de l'attribut data-toggle peut également activer l'état de comportement du bouton pour basculer l'état entre activé et inactif. Cliquez pour activer le bouton, puis cliquez à nouveau pour restaurer le bouton à son état par défaut

<button type="button" data-toggle="button" class="btn btn-primary">有状态的按钮</button><button type="button" class="btn btn-primary">普通按钮</button>
Copier après la connexion


Déclencheur JS

Le plug-in bouton peut obtenir différents effets en appelant la fonction bouton, puis en transmettant des paramètres spécifiques à la fonction bouton. Deux des paramètres sont fixes, à savoir basculer et réinitialiser. D'autres peuvent être définis à volonté :

$("#mybutton").button("toggle");//反转按钮状态
$("#mybutton").button("reset");//重置按钮状态
$("#mybutton").button("任意字符参数名");//替换 data-任意字符参数名-text 的属性值为“按钮上显示的文本值
Copier après la connexion
<button class="btn btn-primary" data-complete-text="加载完成" type="button" id="mybutton">加载</button><script>$(function(){
    $("#mybutton").click(function () {var $btn = $(this).button("loading");
        setTimeout(function(){
            $btn.button('complete');
        },1000);
      });
});    
</script>
Copier après la connexion


Code source JS

【1】IIFE

Utilisez la fonction d'appel immédiat pour empêcher le code du plug-in de fuir, formant ainsi une boucle fermée, et ne peut être étendu qu'à partir du fn de jQuery

+function ($) {//使用es5严格模式'use strict';//}(window.jQuery);
Copier après la connexion

【2】Paramètres initiaux

  var Button = function (element, options) {//要触发的元素this.$element  = $(element)//合并参数this.options   = $.extend({}, Button.DEFAULTS, options)//是否是加载状态this.isLoading = false
  }  //版本号为3.3.7
  Button.VERSION  = '3.3.7'  //默认loadinf时的文本内容为'loading...'
  Button.DEFAULTS = {
    loadingText: 'loading...'
  }
Copier après la connexion

【3】Code principal du plug-in

  //设置按钮状态的方法
  Button.prototype.setState = function (state) {//按钮需要禁用时使用它,先赋值一个临时变量var d    = 'disabled'//当前元素var $el  = this.$element//如果是input,则使用val获取值,否则,使用html获取值var val  = $el.is('input') ? 'val' : 'html'//获取当前元素的自定义属性,所有以data-开头的属性var data = $el.data()//组装需要用到的属性,如传入loading,则组装成loadingTextstate += 'Text'//如果data里不包含data-reset-text值,则将当前元素的值临时存放,以便过后再恢复使用它if (data.resetText == null) $el.data('resetText', $el[val]())//不阻止事件,以允许表单的提交setTimeout($.proxy(function () {      //给元素赋值,如果是元素默认没有值,则从options里查询,否则,从自定义属性里查询  $el[val](data[state] == null ? this.options[state] : data[state])      //如果传入的是loading  if (state == 'loadingText') {//设置加载状态为truethis.isLoading = true//禁用该元素(即添加disabled样式和disabled属性)$el.addClass(d).attr(d, d).prop(d, true)
      } else if (this.isLoading) {this.isLoading = false//如果不是,则删除disabled样式和disabled属性$el.removeClass(d).removeAttr(d).prop(d, false)
      }
    }, this), 0)
  }  //切换按钮状态
  Button.prototype.toggle = function () {//设置change标记var changed = true//查找带有[data-toggle="buttons"]属性的最近父元素var $parent = this.$element.closest('[data-toggle="buttons"]')//如果父元素存在if ($parent.length) {      //查找触发元素内是否存在input元素  var $input = this.$element.find('input')      //如果是单选按钮  if ($input.prop('type') == 'radio') {//如果被选中,则设置changed为falseif ($input.prop('checked')) changed = false//查找同级元素是否有active样式,如果有,则删除active样式$parent.find('.active').removeClass('active')//给当前元素添加active样式this.$element.addClass('active')      //如果是多选按钮  } else if ($input.prop('type') == 'checkbox') {//如果多选按钮选中了,但元素没有active样式//或者多选按钮没有选中,但元素却有active样式,则设置changed为falseif (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false//重置元素的active样式this.$element.toggleClass('active')
      }      //将多选按钮的checked设置为是否有active样式  $input.prop('checked', this.$element.hasClass('active'))      //如果changed为true,则触发change事件  if (changed) $input.trigger('change')
    } else {      this.$element.attr('aria-pressed', !this.$element.hasClass('active'))      //重置元素的active样式  this.$element.toggleClass('active')
    }
  }
Copier après la connexion

【4】 Définition du plug-in jQuery

  function Plugin(option) {//根据选择器,遍历所有符合规则的元素return this.each(function () {      var $this   = $(this)      //获取自定义属性bs.button的值  var data    = $this.data('bs.button')      var options = typeof option == 'object' && option      //如果值不存在,则将Button实例设置为bs.button值  if (!data) $this.data('bs.button', (data = new Button(this, options)))      //如果option是toggle,则直接调用该方法    if (option == 'toggle') data.toggle()      //否则调用setState()方法  else if (option) data.setState(option)
    })
  }  var old = $.fn.button  //保留其他库的$.fn.button代码(如果定义的话),以便在noConflict之后可以继续使用该老代码
  $.fn.button             = Plugin  //重设插件构造器,可以通过该属性获取插件的真实类函数
  $.fn.button.Constructor = Button
Copier après la connexion

【5】Traitement anti-conflit

  $.fn.button.noConflict = function () {//恢复以前的旧代码$.fn.button = old//将$.fn.button.noConflict()设置为Bootstrap的Tab插件return this
  }
Copier après la connexion

【 6】Événement déclencheur de liaison

  $(document)//查询所有以button开头,data-toggle属性的值,绑定click事件.on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {      //查找当前单击对象的最近的有btn样式的父元素  var $btn = $(e.target).closest('.btn')
      Plugin.call($btn, 'toggle')      //如果单击对象不是单选或多选按钮  if (!($(e.target).is('input[type="radio"], input[type="checkbox"]'))) {//阻止默认行为        e.preventDefault()//如果$btn是单选或多选按钮,触发focus事件if ($btn.is('input,button')) $btn.trigger('focus')//否则,找到子元素中的第一个具有visible状态的input或button,触发focus事件else $btn.find('input:visible,button:visible').first().trigger('focus')
      }
    })//查询所有以button开头,data-toggle属性的值,绑定focus事件.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
      $(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
    })
Copier après la connexion

[Recommandations de cours associées : Tutoriel Bootstrap]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment faire le centrage vertical de bootstrap Comment faire le centrage vertical de bootstrap Apr 07, 2025 pm 03:21 PM

Utilisez Bootstrap pour implémenter Centering vertical: Flexbox Méthode: Utilisez les classes D-Flex, Justify-Content-Center et Align-Items-Center pour placer des éléments dans le conteneur Flexbox. Méthode de classe Align-Items-Center: Pour les navigateurs qui ne prennent pas en charge FlexBox, utilisez la classe Align-Items-Center, à condition que l'élément parent ait une hauteur définie.

Comment obtenir la barre de recherche bootstrap Comment obtenir la barre de recherche bootstrap Apr 07, 2025 pm 03:33 PM

Comment utiliser Bootstrap pour obtenir la valeur de la barre de recherche: détermine l'ID ou le nom de la barre de recherche. Utilisez JavaScript pour obtenir des éléments DOM. Obtient la valeur de l'élément. Effectuer les actions requises.

Comment redimensionner le bootstrap Comment redimensionner le bootstrap Apr 07, 2025 pm 03:18 PM

Pour ajuster la taille des éléments dans Bootstrap, vous pouvez utiliser la classe de dimension, qui comprend: ajuster la largeur: .col-, .w-, .mw-ajustement Hauteur: .h-, .min-h-, .max-h-

Comment insérer des photos sur bootstrap Comment insérer des photos sur bootstrap Apr 07, 2025 pm 03:30 PM

Il existe plusieurs façons d'insérer des images dans Bootstrap: insérer directement les images, en utilisant la balise HTML IMG. Avec le composant d'image bootstrap, vous pouvez fournir des images réactives et plus de styles. Définissez la taille de l'image, utilisez la classe IMG-FLUID pour rendre l'image adaptable. Réglez la bordure en utilisant la classe IMG-border. Réglez les coins arrondis et utilisez la classe Roundée IMG. Réglez l'ombre, utilisez la classe Shadow. Redimensionner et positionner l'image, en utilisant le style CSS. À l'aide de l'image d'arrière-plan, utilisez la propriété CSS d'image d'arrière-plan.

Comment utiliser le bouton bootstrap Comment utiliser le bouton bootstrap Apr 07, 2025 pm 03:09 PM

Comment utiliser le bouton bootstrap? Introduisez Bootstrap CSS pour créer des éléments de bouton et ajoutez la classe de bouton bootstrap pour ajouter du texte du bouton

Comment configurer le cadre de bootstrap Comment configurer le cadre de bootstrap Apr 07, 2025 pm 03:27 PM

Pour configurer le framework Bootstrap, vous devez suivre ces étapes: 1. Référez le fichier bootstrap via CDN; 2. Téléchargez et hébergez le fichier sur votre propre serveur; 3. Incluez le fichier bootstrap dans HTML; 4. Compiler les sass / moins au besoin; 5. Importer un fichier personnalisé (facultatif). Une fois la configuration terminée, vous pouvez utiliser les systèmes, composants et styles de grille de Bootstrap pour créer des sites Web et des applications réactifs.

Comment écrire des lignes fendues sur bootstrap Comment écrire des lignes fendues sur bootstrap Apr 07, 2025 pm 03:12 PM

Il existe deux façons de créer une ligne divisée bootstrap: en utilisant la balise, qui crée une ligne divisée horizontale. Utilisez la propriété CSS Border pour créer des lignes de fractionnement de style personnalisées.

Comment afficher la date de bootstrap Comment afficher la date de bootstrap Apr 07, 2025 pm 03:03 PM

Réponse: Vous pouvez utiliser le composant de sélecteur de date de bootstrap pour afficher les dates dans la page. Étapes: Présentez le framework bootstrap. Créez une boîte d'entrée de sélecteur de date dans HTML. Bootstrap ajoutera automatiquement des styles au sélecteur. Utilisez JavaScript pour obtenir la date sélectionnée.

See all articles