Cet article présente la surveillance du défilement Bootstrap pour que tout le monde puisse l'apprendre. Le contenu spécifique est le suivant
1. Scrollspy nécessite actuellement l'utilisation d'un composant de navigation Bootstrap pour une mise en évidence appropriée des liens actifs.
---- Si vous utilisez la surveillance du défilement, la barre de navigation doit utiliser le composant nav de class="nav":
Ce qui suit est une section du code source, la partie marquée en rouge peut le prouver :
Lorsque vous utilisez ScrollSpy, vous devez utiliser la balise
.
--- Pour faire simple, la balise sous doit avoir un attribut href="#id", et il doit y avoir un une telle balise ; lorsque le contenu défile jusqu'à la balise , le correspondant sera automatiquement choisi.
--En fait, les amis qui ont fait du développement Web le savent. Dans les versions précédentes de HTML, les balises d'ancrage utilisaient généralement , mais les balises d'ancrage en HTML5 ont été abandonnées. attribut name, utilisez l'attribut id
ScrollSpy.prototype.activate = function (target) {
this.activeTarget = target
this.clear()
var selector = this.selector +
'[data-target="' + target + '"],' +
this.selector + '[href="' + target + '"]'
var active = $(selector)
.parents('li')
.addClass('active')
if (active.parent('.dropdown-menu').length) {
active = active
.closest('li.dropdown')
.addClass('active')
}
active.trigger('activate.bs.scrollspy')
}
Copier après la connexion
3. Quelle que soit la méthode d'implémentation, scrollspy nécessite l'utilisation de position: relative; sur l'élément que vous espionnez. Dans la plupart des cas, il s'agit du
. ;, assurez-vous d'avoir une hauteur définie et overflow-y: scroll; appliqué.
--- Si vous surveillez le défilement du corps, alors vous devez ajouter le style position:relative au corps
--- Si ce qui est surveillé n'est pas le corps, mais d'autres éléments [apparemment cette méthode est courante], alors vous devez ajouter trois styles : position:relative;height:500px;overflow -y : scroll;
ScrollSpy.prototype.refresh = function () {
var that = this
var offsetMethod = 'offset'
var offsetBase = 0
this.offsets = []
this.targets = []
this.scrollHeight = this.getScrollHeight()
if (!$.isWindow(this.$scrollElement[0])) {
offsetMethod = 'position'
offsetBase = this.$scrollElement.scrollTop()
}
Copier après la connexion
4. Pour ajouter facilement un comportement scrollspy à votre navigation dans la barre supérieure, ajoutez data-spy="scroll" à l'élément que vous souhaitez espionner (le plus souvent, ce sera le
). Ajoutez ensuite la cible de données. attribut avec l'ID ou la classe de l'élément parent de tout composant Bootstrap .nav.
--- Vous devez ajouter l'attribut data-spy="scroll" et l'attribut data-target à l'étiquette du contenu défilant
L'attribut data-spy spécifie l'élément à surveiller et l'attribut data-target spécifie la mise en évidence de la navigation qui doit être contrôlée pendant le défilement
Regardez à nouveau le code source d'initialisation ci-dessous. La position marquée en rouge, la valeur de this.options.target, est égale à la valeur de la cible de données de l'élément de contenu défilant. En voyant cela, vous avez peut-être pensé. cela avant de définir .nav Lors de la création d'un composant, nous devons mettre le .nav dans un autre conteneur (comme un div), et le conteneur doit avoir un attribut id (la même valeur que la cible de données doit être définie ici ).
function ScrollSpy(element, options) {
this.$body = $(document.body)
this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
this.selector = (this.options.target || '') + ' .nav li > a'
this.offsets = []
this.targets = []
this.activeTarget = null
this.scrollHeight = 0
this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
this.refresh()
this.process()
}
Copier après la connexion
Copier après la connexion
5. Après avoir ajouté position: relative; dans votre CSS, appelez le scrollspy via JavaScript :
$('yourTag').scrollspy({ target: 'nav-parent-div-id' })
-- yourTag est l'ID de l'élément qui doit transporter le contenu défilant, nav-parent-div-id est l'identifiant de l'élément parent de l'élément .nav (c'est-à-dire la valeur de data-target )
J'ai écrit un tas de trucs compliqués, voici un résumé de quelques étapes simples :
1. Ajouter une balise
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
Derniers articles par auteur
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31