triathlon-szene.de |  Europas aktivstes Triathlon  Forum

triathlon-szene.de | Europas aktivstes Triathlon Forum (https://www.triathlon-szene.de/forum/index.php)
-   Sonstiges (https://www.triathlon-szene.de/forum/forumdisplay.php?f=32)
-   -   Javascript-Kenner gesucht (https://www.triathlon-szene.de/forum/showthread.php?t=49556)

iChris 11.05.2021 16:05

Hi Hafu,

hab dir eine PN geschickt.

Thorsten 11.05.2021 20:09

Zitat:

Zitat von Hafu (Beitrag 1601532)
Ok, ich dachte mit meinem rudimentären Anwender-IT-Viertelwissen, dass man mit Java-Programmierbefehlen Java-Scripts schreibt.

Nein - und wer selbst keine Verbrechen gegen die Menschlichkeit begangen hat, sollte auch nicht mit JavaScript bestraft werden ;).

Flow 11.05.2021 20:46

Zitat:

Zitat von Thorsten (Beitrag 1601650)
Nein - und wer selbst keine Verbrechen gegen die Menschlichkeit begangen hat, sollte auch nicht mit JavaScript bestraft werden ;).

:Lachen2:

Schön, daß der Titel endlich geändert wurde ... jetzt atmet es sich wieder unbeschwerter beim Blick ins Forum ... :)

zahnkranz 11.05.2021 23:05

Zitat:

Zitat von schnodo (Beitrag 1601540)
Von der Hauptseite unter der Rubrik Videos führt der Button "SEE MORE" zu "https://www.annamariefunk.de/Videos.html"

Diese Seite existiert nicht (das ist ganz unabhängig von Browser oder Reload, weil eine Fehlermeldung vom Server kommt):

Genau das habe ich gemeint, von der Hauptseite der Link zu den Videos, Browser-unabhängig.

binolino 11.05.2021 23:35

Hallo Hafu,

entwickle sowohl Java als auch JavaScript :-P ... aber hier ist wohl eher letzteres gefragt.

Das Script masonry.pkgd.min.js hat deine Tochter wohl von https://masonry.desandro.com

Aber sie hat wohl die Initialisierung noch mit oben reingeschrieben. Dabei hat sie die Initialisierung mit jQuery versucht:

Zitat:

// init Masonry
var $grid = $('.grid').masonry({// options...
});
// layout Masonry after each image loads
$grid.imagesLoaded().progress(function() {
$grid.masonry('layout');
});
Das sollte sie aus mehreren Gründen entfernen:
1. wenn sie die Fremdbiblothek irgendwann aktualisieren will, kann sie nicht einfach die Datei tauschen "und gut is" sondern sie muss daran denken, dass sie hier etwas manipuliert hat. Üblicherweise macht man solche Initialisierungen in eine eigene JavaScript-Datei

2. Es wurden keine Options angegeben: Der Inhalt wo // options steht fehlt. Im Beispiel auf der o.g. Webseite steht:
Zitat:

$('.grid').masonry({
// options
itemSelector: '.grid-item',
columnWidth: 200
});
3. Ihre Seite nutzt kein jQuery also sollte sie auch nicht die Initialisierung via jQuery wählen. Das Problem an JavaScript... sobald 1 Fehler auftritt (den man nicht behandelt hat), wird kein weiterer JavaScript-Code ausgeführt. Hier wird jQuery ($) nicht gefunden.

4. Deshalb funktioniert auch die Initialisierung via HTML nicht, da der JavaScript-Code unterhalb des eingefügten Teils nicht mehr ausgeführt wird.

Zitat:

<div class="grid" data-masonry='{ "itemSelector": ".grid-item", "columnWidth": 399, "fitWidth": true, "gutter": 30 }'>
Der schaut für mich auf den ersten Blick sauber aus. Zumindest steht es auf o.g. Anleitung der Webseite nicht anders aus.

Also selbst geschriebenen Code entfernen und happy sein :-)

Hafu 12.05.2021 07:26

Zitat:

Zitat von binolino (Beitrag 1601672)
Hallo Hafu,

entwickle sowohl Java als auch JavaScript :-P ... aber hier ist wohl eher letzteres gefragt.

Das Script masonry.pkgd.min.js hat deine Tochter wohl von https://masonry.desandro.com

Aber sie hat wohl die Initialisierung noch mit oben reingeschrieben. Dabei hat sie die Initialisierung mit jQuery versucht:

...

Da muss ich meine Tochter in Schutz nehmen, den o.g. Codeschnipsel habe ich gestern abend noch selbst reingemurkst (Copy und paste-übernommen von der von dir genannten Website des masonry-Entwicklers) um den von ihm empfohlenen Workaround mit imagesload.pkgd.min.js zur Vermeidung der "overlapping irtems" zu implementieren.
Aber erstens wusste ich nicht, dass man da noch options implementieren muss und zweitens nicht, wo genau man den zusätzlichen Code einfügen muss.

Habe den falsch eingefügten Code jetzt erstmal wieder entfernt, aber irgendwie funktioniert masonry gerade nicht mehr. Evt. muss man das masonry-Skript nochmal neu in html initialisieren.

Aber da soll sich Anna-Marie heute darum kümmern (ich muss jetzt erstmal wieder in die Arbeit). Sie hat auch noch diverse andere Verbesserungs- und Korrekturhinweise bekommen. Vielen Dank vorab der ganzen Community für die Hilfe.:Blumen:

iChris 12.05.2021 08:51

Zitat:

Zitat von binolino (Beitrag 1601672)
4. Deshalb funktioniert auch die Initialisierung via HTML nicht, da der JavaScript-Code unterhalb des eingefügten Teils nicht mehr ausgeführt wird.

Der schaut für mich auf den ersten Blick sauber aus. Zumindest steht es auf o.g. Anleitung der Webseite nicht anders aus.

Also selbst geschriebenen Code entfernen und happy sein :-)

Das kann man so leider nicht unterschreiben. Die Initialisierung der Lib via HTML führt wie mehrfach geschildert zum Problem, dass die Bilder erst korrekt dargestellt werden wenn alles mal im Cache liegt. Im FAQ der Lib wird auch explizit drauf hingewiesen, dass wenn man das Ganze mit Bildern nutzen will auch imagesLoaded verwenden soll und das dann auch richtig initialisert. ;)


Zitat:

Zitat von Hafu (Beitrag 1601679)
Aber erstens wusste ich nicht, dass man da noch options implementieren muss und zweitens nicht, wo genau man den zusätzlichen Code einfügen muss.

Wie schon von binolino beschrieben lässt man Libs eigentlich unangepasst. Theoretisch würde das trotzdem funktionieren wenn du eben jQuery und imagesLoaded zuvor eingebunden hast, da das initialize erst nach der Einbindung passiert. "Sauber" wäre es ein separates File als letztes hinzuzufügen.

Das Mansonry funktioniert jetzt nicht mehr, da das JS jetzt ein Syntax Error hat.
Du hast vergessen var $grid = $('.grid').imagesLoaded( function() { zu entfernen.


Füge einfach die fehlenden Libs hinzu:
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script src="Js/masonry.pkgd.min.js"></script>
<script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
<script src="Js/Navbar.js"></script>

und packe das initialisieren entweder in ein neues File oder in das schon vorhande Navbar.js und gebe dem vielleicht einen generischeren Namen.

Zitat:

$(document).ready(function() {
var $grid = $('.grid').imagesLoaded(function() {
$grid.masonry({
itemSelector: '.grid-item',
columnWidth: 399,
gutter: 30,
fitWidth: true
});
});
});
https://jsfiddle.net/u0qrkvpt/

und das data-masonry aus dem MarkUp entfernen ;)

Hafu 12.05.2021 09:34

Zitat:

Zitat von iChris (Beitrag 1601699)
...
Wie schon von binolino beschrieben lässt man Libs eigentlich unangepasst. Theoretisch würde das trotzdem funktionieren wenn du eben jQuery und imagesLoaded zuvor eingebunden hast, da das initialize erst nach der Einbindung passiert. "Sauber" wäre es ein separates File als letztes hinzuzufügen.

Das Mansonry funktioniert jetzt nicht mehr, da das JS jetzt ein Syntax Error hat.
Du hast vergessen var $grid = $('.grid').imagesLoaded( function() { zu entfernen.

Danke für die Analyse. Hab den Code wieder entfernt und jetzt geht mansonry zumindest wieder wie zuvor (mit Reload).:Blumen:

Zitat:

Zitat von iChris (Beitrag 1601699)
...
Füge einfach die fehlenden Libs hinzu:
<script src="https://code.jquery.com/jquery-3.5.0.js"></script>
<script src="Js/masonry.pkgd.min.js"></script>
<script src="https://unpkg.com/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
<script src="Js/Navbar.js"></script>

Wo genau füge ich diese Libs hinzu?



Zitat:

Zitat von iChris (Beitrag 1601699)
...

und das data-masonry aus dem MarkUp entfernen ;)

Das bedeutet was genau? Editieren der index.html?


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:30 Uhr.

Powered by vBulletin Version 3.6.1 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.