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.

Idee…
-
Erstellen Sie eine schwebende Box.
-
Initialisieren Sie die Position der Floating Box und setzen Sie sie neben den Hauptteil.
-
Überprüfen Sie während des Bildlaufs die Position der Bildlaufleiste.
-
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.
-
Stellen Sie die ursprüngliche Position wieder her, während die y-Position der Bildlaufleiste kleiner als die y-Position des schwebenden Felds ist.
-
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.
header
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.