Code Monkey home page Code Monkey logo

high-code-2's Introduction

🔮 justmytype.js

Heute werden wir Javascript erkunden... yay!

Tagesziel ist es:

  1. Eine variable Schrift in CSS einbinden und mit Javascript zu animieren:

  2. Optional:

Auf geht's!

Wenn du letztes mal nicht da warst kannst du mit unsere 👉 Vorlage herunterladen und damit arbeiten.

✨ Step 1.0. – Einbinden einer variablen Schrift

Lade dir die 👉 Schriftdateien herunter, speichere sie unter assets in deinem fonts Ordner und binde sie folgendermaßen in deine CSS Datei ein.

@font-face ermöglicht das lokale einbinden von Schriftdateien. Mit font-family gibst du der Schrift einen Namen um sie dann mit diesem anzuwenden. Mit src gibst du den Pfad der Quelldatei an. Achte darauf das die Ordnerstruktur und der Dateiname stimmen.

@font-face {
	font-family: Edu Monument;
	src: url("../fonts/EduMonumentGroteskVariable.ttf");
}

@font-face {
	font-family: Bandeins;
	src: url("../fonts/BandeinsStrangeVariableGX.ttf");
}

@font-face {
	font-family: Movement;
	src: url("../fonts/MovementV.ttf");
}

@font-face {
	font-family: Collective Patterns;
	src: url("../fonts/CollectivePatternsVF.ttf");
}

Teste die Schrift jetzt indem du sie einem Textelement oder Klasse deiner Wahl zuordnest. (z.B. h1 oder .text)

h1 {
    font-family: Edu Monument;
}

Prüfe jetzt ob deine Schrift angezeigt wird! 👀

CSS-Eigenschaft: font-variation-settings

Mit dieser Eigenschaft kannst du die Stärke und Breite von variablen Schriften einstellen. Probiere mit den Zahlen der Parametern "wght" und "wdth" deine Schrift einzustellen. Valide Werte sind 100 200 300 ... 900

h1 {
    font-variation-settings: "wght" 100, "wdth" 100;
}

Du kannst diese Werte z.B. durch h1:hover beim mit der Maus drüber fahren verändern.

🔥 Step 1.1. – Einbinden einer Javascript Datei

  1. Erstelle in deinem assets Ordner einen Ordner js
  2. Erstelle darin eine Datei namens main.js
  3. Gehe in deine index.html und scrolle runter zum closing </body> tag.
  4. Erstelle eine Zeile über den Tag einen <script src="assets/js/main.js"></script> tag.

Das Ende deiner HTML sollte so aussehen:

...
        <script src="assets/js/main.js"></script>
    </body>
</html>
🔗 Überprüfe ob die Datei richtig eingebunden wurde
  1. Öffne deine main.js Datei und schreibe console.log("Hello World"); rein.
  2. Speichern nicht vergessen.
  3. Öffne deine index.html Datei im Browser.
  4. Öffne die Konsole (option+cmd+i oder Rechtsklick > Untersuchen/Inspect).
  5. Wenn deine Nachricht in der Konsole ausgegeben wird hat alles geklappt! 👏

💫 Step 1.2. – Die Schrift beim scrollen animieren

Jetzt animieren wir die Schrift beim scrollen. Fixiere ein Element auf deiner Seite beim scrollen mit position: fixed in deiner CSS-Datei.

h1 {
    position: fixed; /* Fixiert das Element beim scrollen */
    z-index: 2; /* Hebt das Element auf der z-Achse über die anderen */
}

Öffne als nächstes deine main.js Datei und kopiere diesen Code rein.

⚠️ Achtung! Eigentlich kopiert man nicht einfach irgendwelchen Code ohne ihn zu verstehen. Hier müsst ihr uns dieses mal vertrauen. Wir erklären euch unten wie es funktioniert.

const animation = document.querySelector("h1");

window.addEventListener("scroll", function () {
	const pixels = window.pageYOffset;

	const fontweight = 100 + pixels * 0.9;
	const fontwidth = 100 + pixels * 0.9;

	animation.style.fontVariationSettings = `"wght" ${fontweight}, "wdth" ${fontwidth}`;
});
Erklärung:
  1. const (Konstante) speichert einen Wert. Hier wird das h1 Element in die Konstante names "animation" gespeichert.
  2. Eine Funktion die bei dem Event scroll etwas auf der Seite ausgeführt wird erstellt.
  3. In die const namens "pixels" wird der Wert der Y-Achse gespeichert.
  4. In die const namens "fontweight" wird die Rechnung 100 + der Wert der Y-Achse x 0.9 gespeichert.
  5. In die const namens "fontwidth" wird die Rechnung 100 + der Wert der Y-Achse x 0.9 gespeichert.
  6. Für das h1 Element werden die Werte der CSS-Eigenschaft font-variation-settings (wght und wdth) den vorher definierten Konstanten, also den Berechnungen fontweight und fontwidth zugeteilt.
  7. Somit verändern sich die Werte dieser CSS-Eigenschaft beim scrollen.

Wenn du ein anderes Element (z.B. p oder .text) animieren möchtest, muss dieses statt "h1" in die Konstante oben gespeichert werden. Probiere ein wenig mit den Zahlen der der Konstanten fontweight und fontwidth herum um für deine Scroll Länge und Schrift die richtige Einstellung zu finden.

THE END 💥

... wait ... 💩

🌀 Step 2.0. – CSS Library für maximal annoying Schrift

Jetzt wird es richtig nervig. Aber nicht für dich! 😇 Wir bauen noch obnoxious.css ein, eine CSS-Library von Tim Holman.

🔥 Step 2.1. – Einbinden der CSS-Library

Um obnoxious.css einzubinden lade dir obnoxious.css 👉 hier herunter und speicher die Datei mir dem Namen obnoxious.css unter assets in deinen css Ordner. Als nächstes bindest du die Datei in den <head> Tag deiner index.html Datei:

<head>
  <link rel="stylesheet" href="assets/css/obnoxious.css">
</head>

💫 Step 2.2. – Animieren eines Elements

Um ein Element zu animieren musst du ihm nur die Klasse animated mit einer der folgenden Klassen zusammen geben:

  • shakeit
  • intensifies
  • fontalicious
  • strobe
  • twister

Zum Beispiel so:

<h1 class="animated intensifies">Annoying, too loud, to messy!</h1>

Probiere einfach ein bisschen rum.

THE REAL END 💥

high-code-2's People

Contributors

amyraradwan avatar

Watchers

 avatar

Forkers

ngocci

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.