Wie entsteht bei diesem Code der Fehler?

2 Antworten

Eigt soll durch die Rechnung so am Ende bei jedem div eine andere veränderte marginLeft herauskommen

Wie kommst du darauf?

Welcher Teil der Rechnung unterscheidet sich denn je Element?

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
The2nd 
Fragesteller
 11.05.2023, 18:29

Die jeweilige marginLeft - oder etwa nicht?

0
MrAmazing2  11.05.2023, 18:33
@The2nd

Kann sein, kann aber auch nicht sein.

Den liest du aus einem Style aus, welchen du in der Frage nirgends ansprichst oder herzeigst 🤷🏻‍♂️ Wenn du überall den selben marginLeft per Style gesetzt hast, dann käme da auch für jedes Element dasselbe raus.

0

parseFloat(e.style.marginLeft.replace("vw", ""))

Gibt immer denselben Wert zurückgibt, da die

marginLeft

Eigenschaft der Elemente mit der Klasse

points

im CSS-Stil definiert sein muss.

MrAmazing2  11.05.2023, 00:52

Und zwar inline, weil .style nur das Inline-CSS auslesen kann, nicht aber beispielsweise CSS-Eigenschaften, die mittels einer CSS-Datei oder eines <style>-Tags gesetzt wurde.

0
The2nd 
Fragesteller
 11.05.2023, 18:30
@MrAmazing2

Wenn mich nicht täuscht ist das inline gesetzt, marginLeft jedes einzelnen Elements wird vorher über js random generiert und hinzugefügt

0
bubbIes  11.05.2023, 19:02
@The2nd

const stars = document.querySelectorAll(".points")

window.addEventListener("mousemove", function(event) {

 stars.forEach(function(e) {

  let offsetLeft = e.offsetLeft;

  let sum = ((event.clientX / window.innerWidth * 100) - offsetLeft) / 10 + "vh";

  e.style.marginLeft = sum;

 })

})

Hier wird die

offsetLeft

Eigenschaft jedes Elements verwendet, um seine tatsächliche linke Position relativ zum Elternelement zu berechnen, anstatt den

marginLeft

Wert zu extrahieren

0