Advertisement
  1. Web Design
  2. CSS

Wie Sie Ihrem Logo den "Slip Scroll"-Effekt verleihen

Scroll to top
Read Time: 3 min

() translation by (you can also view the original English article)

Im heutigen Tutorial werden wir JavaScript verwenden, um einen einfachen, flexiblen Parallaxen-Effekt zu erzeugen, bei dem ein Logo scheinbar die Farben mit dem Hintergrund wechselt, wenn der Benutzer scrollt.

Slip scroll effectSlip scroll effectSlip scroll effect
Der Slip-Scroll-Effekt in Aktion

Wir werden ein "Standard"-Element erstellen, das seine Position beibehält (position: fixed), und eine Reihe von "beweglichen" Elementen, deren Position von diesem "Standard"-Element abhängt. Wir werden JavaScript verwenden, um dies jedes Mal zu tun, wenn der Benutzer scrollt.

Hinweis: Um alle Bereiche abzudecken, habe ich die Erklärung in Video- und schriftlicher Form bereitgestellt.

Das Video ansehen

Abonnieren Sie Tuts+ Web Design auf Youtube

Lesen Sie die Anleitung

Basis-Auszeichnung

Wir beginnen mit der Erstellung einiger enthaltender Elemente. Wir machen einen ihrer Hintergründe dunkel und einen hell, damit wir ein kontrastreiches Bild in ihnen enthalten können. Außerdem machen wir unser erstes Bild zum "Standardbild", indem wir ihm die Klasse default zuweisen, während die anderen Bilder die Klasse moveable erhalten.

1
<div class="container dark">
2
  <img src="img/acme-light.svg" class="default">
3
</div>
4
5
<div class="container light">
6
  <img src="img/acme-dark.svg" class="moveable">
7
</div>

Basisstile

Stellen wir nun sicher, dass unsere Bilder nicht außerhalb ihrer Container scrollen, indem wir overflow: hidden einstellen. Wir werden auch voran gehen und sagen, dass diese Container relative Position haben, so dass die absolut positionierten Elemente zu diesen Containern statt direkt auf das feste Element ausrichten, wenn wir unser JavaScript schreiben.

Aus Gründen der Scrollbarkeit, geben wir diesen Containern eine min-height von etwa 400px. Und unsere Logos weg von den Kanten zu halten, geben wir ihnen einige padding von 1em.

1
.container {
2
  overflow: hidden;
3
  position: relative;
4
  min-height: 400px;
5
  padding: 1em;
6
}

Jeder Behälter braucht also eine kontrastreiche Farbe:

1
.dark {
2
  background: #333;
3
}
4
5
.light {
6
  background: #fff;
7
}

Und schließlich, wie versprochen, stellen wir unsere Standard- und beweglichen CSS so ein, dass eine mit der Seite verbunden ist, wenn der Benutzer scrollt, und die andere sich mit ihr bewegt, ohne an andere Elemente zu stoßen:

1
.default {
2
  position: fixed;
3
}
4
5
.moveable {
6
  position: absolute;
7
}

Das sollte für das Markup und das Styling ausreichen. Wenn Sie die Seite anzeigen, sollten Sie das Standardlogo sehen, das nach unten scrollt und sich hinter den anderen Containern versteckt, während alle beweglichen Logos als normale Elemente oben links in ihren jeweiligen Containern erscheinen sollten.

Einführung in JavaScript

Jetzt kommt der spaßige Teil: die Arbeit mit JavaScript.

Zuerst laden wir jQuery und unser benutzerdefiniertes Skript am Ende unserer index.html:

1
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
2
    <script src="js/slipScroll.js"></script>
3
  </body>
4
</html>

Erstellen und öffnen Sie eine Datei namens js/slipScroll.js.

In dieser Datei erstellen wir als Erstes eine Funktion namens setLogo und fügen diese Funktion in ein jQuery-Scroll-Ereignis ein, damit dieses Ereignis jedes Mal ausgelöst wird, wenn der Benutzer einen Pixel scrollt. Wir wollen auch sicherstellen, dass wir dieses Ereignis auslösen, wenn der Benutzer zuerst auf der Seite ankommt (bevor er scrollt):

1
var setLogo = function() {
2
3
};
4
5
$(document).scroll(function() {
6
  setLogo();
7
});
8
9
setLogo();

Die Dinge zum Laufen bringen

Jetzt kommt der Clou. Nehmen wir an, dass jede einzelne Instanz von .moveable auf der Seite seine CSS-top-Position ändern sollte, wie weit das Standardbild vom oberen Rand der Seite entfernt ist, abzüglich der Entfernung des Containers dieses .moveable-Elements vom oberen Rand der Seite.

1
var setLogo = function() {
2
3
  $('.moveable').each(function() {
4
    $(this).css('top',
5
      $('.default').offset().top -
6
      $(this).closest('.container').offset().top
7
    );
8
  });
9
10
};

Aktualisieren Sie Ihre Seite, und voila! Sie haben soeben einen pseudo-parallaxen Bildlaufeffekt von Grund auf in nur wenigen Zeilen Code erstellt.

Schlussfolgerung

Ich möchte Sie ermutigen, mit dieser Lösung herumzuprobieren. Versuchen Sie, mit der JavaScript-Funktion selbst zu spielen, um zu sehen, welche Art von seltsamen Offsets Sie erhalten, wenn Sie ein paar Pixel hinzufügen oder entfernen. Versuchen Sie, verschiedene Elemente (z. B. eine Navigation) anstelle von Bildern für Ihren scrollbaren Inhalt zu verwenden.

Ich hoffe, Sie haben viel gelernt, und wenn Sie Fragen haben, können Sie gerne unten einen Kommentar hinterlassen.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Web Design tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.