2016-06-11 12 views
2

So, hier ist was ich bisher habe: https://jsfiddle.net/625qofbe/1/Wie ändere ich div Position mit Javascript?

Was ich will, ist für die Position des „etwa“ div, mit dem Lorem Ipsum Text und was sollte ein „X“ -Symbol (ich weiß nicht, wie um Bilder in JSfiddle zu verlinken, tut mir leid), um zum Beispiel 30 Pixel nach links zu bewegen, wenn der Benutzer oben links auf die Schaltfläche "Über" klickt. Hier ist die Javascript Ich habe versucht, das zu tun, mit:

document.getElementById("button").addEventListener("click", AboutOnScreen); 

function AboutOnScreen() { 
    document.getElementById("about").style.left = 30px; 
} 

Ich habe googeln und die Javascript gegen erfolgreiche kleine Experimente wie diese ewig Kontrolle, aber nichts hat funktioniert und ich kann nicht sehen, was ich Ich mache hier falsch.

Das Endziel ist es, den Lorem-Text außerhalb des Bildschirms verborgen zu haben, hineinzuschieben, wenn der Benutzer auf About klickt, und dann außerhalb des Bildschirms zu gleiten, sobald er auf das X-Symbol klickt. Ich war mir sicher, dass ich theoretisch wusste, wie das geht, aber ich habe im ersten Schritt einen Haken gefunden.

EDIT: Danke für die Hilfe Jungs, aber seltsamerweise die beiden Lösungen, die beide in JSfiddle funktionierte, funktionierte nicht, auch wenn ich den Code wieder in Sublime Text kopiert/eingefügt. Ich habe jedoch die Sache funktioniert, indem ich die Zeile "addEventListener" entfernt habe und "onclick = 'AboutOnScreen()'" in das div-Tag für die Über-Schaltfläche eingefügt habe. Die Zeile "addEventListener" hat eine Fehlerbenachrichtigung gesendet, als ich die Seitenquelle überprüft habe (wie von Arindam vorgeschlagen), sodass ich sie vollständig losgeworden bin. Das Seltsame ist, ich bin mir sicher, dass ich das vorher ohne Erfolg versucht habe, also stellte sich heraus, dass die Lösung dieses Kopfkratzers ein Zusammenfluss aller Antworten ist.

+1

Verwenden Sie eine Zeichenfolge mit der richtigen Komma ... 'links = '30px';' und nicht nur 'links = 30px;' – Rikard

+1

@Rikard: Es ist erwähnenswert, dass diejenigen Zitate sind (' '') , nicht Kommas (','). –

+1

Bauen Sie das nicht selbst. Verwenden Sie jquery. – Gregg

Antwort

2

Wie @Rikard erwähnt, gehen Sie wie folgt vor:

document.getElementById("button").addEventListener("click", AboutOnScreen); 

function AboutOnScreen() { 
    document.getElementById("about").style.left = '30px'; 
} 

Welche das Snippet bekommen sollte arbeiten. Wie bei der gleitenden Animation können Sie CSS3 (unter der Annahme von Browserunterstützung) verwenden, um schnell Animationen für Ihre Seite hinzuzufügen.

wäre eine gute Ressource für CSS3-Animationen http://www.w3schools.com/css/css3_animations.asp

Viel Glück und viel Spaß!

+0

Also funktionieren sowohl Ihre Antwort als auch zer00nes Antwort völlig gut (danke), wenn ich sie in JSfiddle mache, aber wenn ich sie in Sublime Text versuche, bekomme ich immer noch nichts. Ich bin sogar soweit gegangen, alles von JSfiddle in das Sublime Text-Dokument zu kopieren/einzufügen und die Seite sowohl in Safari als auch in Google Chrome auszuführen. Ich dachte, es gäbe ein Problem mit dem Speichern, dass ich versehentlich zwei Versionen der Datei erstellt habe, aber ich kann andere sichtbare Änderungen ohne Probleme vornehmen. – Evan

+0

Möglicherweise müssen Sie die Webseite mit Strg + F5 neu laden. Um zu überprüfen, ob die Änderungen gespeichert und weitergegeben wurden, klicken Sie einfach mit der rechten Maustaste auf + View-Source auf der Webseite und vergewissern Sie sich, dass die Änderungen am Editor weitergegeben wurden. – Arindam

1

Wenn Sie den Inline-Stil des Abstandswertes eines Elements in plain JS festlegen, ist dies eine Kombination aus Number und String oder String. Der Wert kann also lauten: '430px' oder 430+'px'.

document.getElementById("button").addEventListener("click", AboutOnScreen); 

function AboutOnScreen() { 
    document.getElementById("about").style.left = 430 + 'px'; 
} 

sagte Sie bewegen nach links um 30px, die (zumindest für mich) interpretiert wird, wie 30px von dem Element zur Zeit positioniert ist. So war es left: 400px, also sollte der Wert 430px sein, wenn man 30px nach links verschiebt.

FIDDLE

Verwandte Themen