Mashable Floating-Effekt-Beispiel mit jQuery

Beispiel für einen mashbaren Floating-Effekt mit jQuery

Mashable, am besten bekannt als Social-Media-Ressourcen-Website, hat beim Scrollen der Seite durch den Benutzer einen fantastischen schwebenden Effekt erzeugt. Hier ist eine einfache Idee, um diesen schwebenden Effekt mit jQuery zu klonen.

image

Idee…

  1. Erstellen Sie eine schwebende Box.

  2. Initialisieren Sie die Position der Floating Box und setzen Sie sie neben den Hauptteil.

  3. Überprüfen Sie während des Bildlaufs die Position der Bildlaufleiste.

  4. Wenn die y-Position der Bildlaufleiste größer als die y-Position des schwebenden Felds ist, ändern Sie die y-Position des schwebenden Felds dynamisch.

  5. Stellen Sie die ursprüngliche Position wieder her, während die y-Position der Bildlaufleiste kleiner als die y-Position des schwebenden Felds ist.

  6. Verwenden Sie natürlich jQuery.

1. HTML-Layout

Ein einfaches HTML-Layout mit Kopf-, Inhalts- und Fußzeile setzt ein div-Feld über den Inhalt.

content

Mashable floating effect example

2. Schwimmbox 90 × 200

Dies ist die Box, die reibungslos schwebt, während Leute durch die Box scrollen. Möglicherweise müssen Sie die“margin-left:-100px; ”ein wenig an Ihre Bedürfnisse anpassen.

#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. Bitte keine Konflikte

Stellen Sie sicher, dass jQuery keinen Konflikt mit einer anderen Bibliothek hat. Sehr zu empfehlen, es zu überprüfen.

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

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

4. Position, Position, Position

Binden Sie das jQuery scroll () -Ereignis, um die Position der Bildlaufleiste des Browsers zu überprüfen.

$(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
            });
        }
    }
});

Wenn die y-Position der Bildlaufleiste größer als die y-Position der schwebenden Box ist, ändern Sie die y-Position der schwebenden Box in "marginLeft: -500". Möglicherweise müssen Sie diesen Wert an Ihre Bedürfnisse anpassen.

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

Wenn die y-Position der Bildlaufleiste kleiner als die y-Position des schwebenden Felds ist, stellen Sie die ursprüngliche Position wieder her.

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

5. Done

Spielen Sie das folgende Beispiel, um sich ein Bild von den Arbeiten zu machen.

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

Versuch es selber











  

content

Mashable floating effect example