Exemple d’effet flottant mashable avec jQuery

Exemple d'effet flottant masquable avec jQuery

Mashable, mieux connu sous le nom de site Web de ressources de médias sociaux, a créé un effet flottant impressionnant lorsque l'utilisateur fait défiler la page. Voici une idée simple pour cloner cet effet flottant avec jQuery.

image

Idée…

  1. Créez une boîte flottante.

  2. Initialisez l'emplacement de la boîte flottante, placez-le à côté du contenu du corps.

  3. Pendant que l'utilisateur fait défiler la page, continuez de vérifier la position de la barre de défilement.

  4. Si la position y de la barre de défilement est supérieure à la position y de la boîte flottante, modifiez dynamiquement la position y de la boîte flottante.

  5. Alors que la position y de la barre de défilement est inférieure à la position y de la boîte flottante, restaurez la position d'origine.

  6. Utilisez jQuery, bien sûr.

1. Disposition HTML

Une mise en page HTML simple, un en-tête, un contenu et un pied de page, placent une «boîte flottante» div au-dessus du contenu.

content

Mashable floating effect example

2. Caisse flottante 90 × 200

C'est la boîte qui flottera en douceur pendant que les gens la feront défiler. Vous devrez peut-être ajuster un peu les“margin-left:-100px; ”en fonction de vos besoins.

#floating-box{
    width:90px;
    height:200px;
    border:1px solid red;
    background-color:#BBBBBB;
    float:left;
    margin-left:-100px;
    margin-right:10px;
    position:absolute;
    z-index:1;
}

3. Pas de conflits, s'il vous plaît

Assurez-vous que jQuery n'a aucun conflit avec une autre bibliothèque. Je recommande vivement de le vérifier.

    //avoid conflict with other script
    $j=jQuery.noConflict();

    $j(document).ready(function($) {

4. Position, position, position

Liez l'événement jQuery scroll () pour continuer à vérifier la position de la barre de défilement du navigateur.

$(window).scroll(function () {

    var scrollY = $(window).scrollTop();
    var isfixed = $floatingbox.css('position') == 'fixed';

    if($floatingbox.length > 0){

        if ( scrollY > bodyY && !isfixed ) {
            $floatingbox.stop().css({
                position: 'fixed',
                left: '50%',
                top: 20,
                marginLeft: -500
            });
        } else if ( scrollY < bodyY && isfixed ) {
            $floatingbox.css({
                position: 'relative',
                left: 0,
                top: 0,
                marginLeft: originalX
            });
        }
    }
});

Si la position y de la barre de défilement est supérieure à la position y de la boîte flottante, changez la position y de la boîte flottante en "marginLeft: -500". Vous devrez peut-être personnaliser cette valeur en fonction de vos besoins.

    if ( scrollY > bodyY && !isfixed ) {
       $floatingbox.stop().css({
        position: 'fixed',
        left: '50%',
        top: 20,
        marginLeft: -500
       });
     }

Si la position y de la barre de défilement est inférieure à la position y de la boîte flottante, rétablissez la position d'origine.

        if ( scrollY < bodyY && isfixed ) {
       $floatingbox.css({
        position: 'relative',
        left: 0,
        top: 0,
        marginLeft: originalX
       });
    }

5. Done

Essayez de lire l'exemple ci-dessous pour vous faire une idée des œuvres.

P.S This floating effect feature is implemented in my DiggDigg WordPress plugin.

Essayez-le vous-même











  

content

Mashable floating effect example