Maison > interface Web > tutoriel CSS > Comment faire défiler horizontalement un Div à position fixe avec du contenu à l'aide de jQuery ?

Comment faire défiler horizontalement un Div à position fixe avec du contenu à l'aide de jQuery ?

Mary-Kate Olsen
Libérer: 2024-10-29 09:30:30
original
522 Les gens l'ont consulté

How to Make a Fixed Position Div Scroll Horizontally with Content Using jQuery?

Défilement horizontal d'un div à position fixe à l'aide de jQuery

Dans cet article, nous aborderons la question du défilement horizontal du contenu dans un champ fixe positionnez le div à l'aide de jQuery.

Un utilisateur a un div avec une classe scroll_fixed et souhaite le corriger lorsqu'il atteint le haut de la page. Le CSS suivant stylise le div :

.scroll_fixed {
    position:absolute
    top:210px
}
.scroll_fixed.fixed {
    position:fixed;
    top:0;
}
Copier après la connexion

Le code jQuery est utilisé pour ajouter une classe fixe lorsque le div atteint le sommet :

$(window).scroll(function (event) {
    // Check if the scroll position is greater than the top offset of the div
    if ($(this).scrollTop() >= top) {
        $('.scroll_fixed').addClass('fixed');
    } else {
        $('.scroll_fixed').removeClass('fixed');
    }
});
Copier après la connexion

Cela fonctionne bien pour le défilement vertical, mais provoque un conflit avec le contenu à droite du div lorsque la fenêtre du navigateur est petite. L'utilisateur souhaite que le div défile horizontalement avec le contenu.

/Solution :

Pour faire défiler le div horizontalement, nous devons conserver sa position : fixe et manipuler la propriété de gauche au lieu du haut. Le code jQuery mis à jour suivant accomplit cela :

var leftInit = $(".scroll_fixed").offset().left;

$(window).scroll(function (event) {
    // Get the current scroll positions
    var x = 0 - $(this).scrollLeft();
    var y = $(this).scrollTop();

    // Fix the div when it reaches the top
    if (y >= top) {
        $('.scroll_fixed').addClass('fixed');
    } else {
        $('.scroll_fixed').removeClass('fixed');
    }

    // Adjust the left offset of the div based on the scroll position
    $(".scroll_fixed").offset({
        left: x + leftInit
    });
});
Copier après la connexion

En utilisant leftInit, nous prenons en compte toute marge gauche sur le div. Essayez cette solution sur : http://jsfiddle.net/F7Bme/

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal