php.de

Zurück   php.de > Webentwicklung > JavaScript, Ajax und mehr

JavaScript, Ajax und mehr dynamisches Scripten und Interaktion auf Clientebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.10.2010, 14:04  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard Pixel addieren und Element somit neu positionieren schlägt fehl

Tach alle miteinander,

ich versuche mal wieder ein wenig meine JS Kenntnisse (die sind nicht sehr hoch) auszuweiten, jedoch komme ich grad nicht weiter, so richtig habe ich auch über Google nichts finden können.

Zum testen geht das ganze hier http://www.lit-web.de/js_test/elem_pos.html da seht ihr einen kleinen Container wo #1 drin steht und unten seht ihr Links wie man den Container nun hin und her positionieren kann (momentan nur hoch und runter möglich). Verschieben kann man es auch, jedoch momentan nur nach unten egal ob man hoch oder runter wählt und es wir auch nicht nur um ein Pixel pro Klick verschoben.

Hier mal die zwei Funktionen.

Code:
function editTop ( elementId ) {
        
        var element = document.getElementById( elementId );
        var top = getPositionX( element );
        
        if ( document.getElementById( 'idTop' ) ) {
            
            top--;
        }
        
        var newPosX = document.getElementById( elementId ).style.top = top;
        
        return newPosX;
    }


function editBottom ( elementId ) {
        
        var element = document.getElementById( elementId );
        var bottom = getPositionX( element );
        
        if ( document.getElementById( 'idBottom' ) ) {
            
            bottom++;
        }
        
        var newPosX = document.getElementById( elementId ).style.top = bottom;
        
        return newPosX;
    }
Und hier nur die zwei Links mit denen man das machen kann.

Code:
<a href="#" id="idTop" onClick="editTop('elem1')">Hoch</a> - 

<a href="#" id="idBottom" onClick="editBottom('elem1')">Runter</a>
Könnt ihr mir da weiter helfen, dass sich wenn ich auf hoch klicke der Container um ein Pixel pro Klick nach oben verschiebt und wenn ich auf unten klicke das der Container sich um ein Pixel pro Klick nach unten verschiebt?

Vielen Dank für eure Hilfe Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 29.10.2010, 14:12  
Erfahrener Benutzer
 
Registriert seit: 01.09.2010
Beiträge: 4.561
PHP-Kenntnisse:
Fortgeschritten
eagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Menscheagle275 ist ein sehr geschätzer Mensch
Standard

erm .. hoch / runter .. warum holst du dann

getPositionX( element ); ??

das ist passender für Links / Rechts ...

hoch / runter sollte doch eher mit getPositionY(element); zu tun haben .....


sorry hab jetzt erst den Seitenquellcode gesehen .... die Funktionen sind ja selbst geschrieben . aber nicht besonders sinnvoll benannt ....
__________________
"Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

Geändert von eagle275 (29.10.2010 um 14:30 Uhr).
eagle275 ist offline   Mit Zitat antworten
Alt 29.10.2010, 14:26  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Dein Problem ist das du mit 2 verschiedenen Angaben arbeitest: offsetTop != style.top
cycap ist offline   Mit Zitat antworten
Alt 29.10.2010, 14:44  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von cycap Beitrag anzeigen
Dein Problem ist das du mit 2 verschiedenen Angaben arbeitest: offsetTop != style.top
Wie kann ich das offsetTop ind style.top umwandeln?

Hatte das so schon probiert.

Code:
var posX;

posX = document.getElementById( elementId ).style.top;

return posX;
So wurde aber am Ende über ein alert nur was mit undefined ausgegeben. Wie kann ich also über das DOM richtig auf die top Angabe zur Position zugreifen?

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 29.10.2010, 14:51  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Wieso offsetTop umwandeln? Du kannst doch einfach das auslesen ändern:

Code:
	function getPositionX ( element ) {
		
		var posTop = parseInt(element.style.top.replace(/px/, ''));
		
		return posTop;
	}

Geändert von cycap (29.10.2010 um 14:55 Uhr).
cycap ist offline   Mit Zitat antworten
Alt 29.10.2010, 19:27  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Ich habe das jetzt so gemacht, aber nun bekomme ich in der Fehlerkonsole gleich beim aktualisieren eine Fehlermeldung.

Code:
Fehler: missing ; before statement
Quelldatei: http://www.lit-web.de/js_test/elem_pos.html
Zeile: 8, Spalte: 19
Quelltext:
  var posTop = (int)element.style.top.replace(/px/, '');
Und wenn ich dann auf Hoch drücke kommt zusätzlich noch diese Meldung.

Code:
Fehler: editTop is not defined
Quelldatei: http://www.lit-web.de/js_test/elem_pos.html
Zeile: 1
Was läuft denn da noch schief? Ich tue mich doch recht schwer JS zu rappeln, ich hoffe mein Buch ist bald da.

Danke für die Hilfe.

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 29.10.2010, 20:11  
Moderator¹
 
Registriert seit: 28.03.2010
Beiträge: 7.470
PHP-Kenntnisse:
Fortgeschritten
ChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer AnblickChrisB ist ein wunderbarer Anblick
Standard

Code:
  var posTop = (int)element.style.top.replace(/px/, '');
Diese Art von TypeCast gibt es in JavaScript nicht.
__________________
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
ChrisB ist offline   Mit Zitat antworten
Alt 29.10.2010, 20:30  
Benutzer
 
Registriert seit: 24.10.2010
Beiträge: 65
PHP-Kenntnisse:
Anfänger
infi befindet sich auf einem aufstrebenden Ast
Standard

Guten Abend,

ich habe dein Script (eine Funktion) und ein paar andere Kleinigkeiten mal ein wenig verändert, den rest schaffst du bestimmt allein.

Code:
...
<script type="text/javascript">
function editTop ( elementId ) {
var element = document.getElementById( elementId );
var top = getPositionX( element );
		
	if ( document.getElementById( 'idTop' ) ) {
	top--;
	}
		
element.style.top = top+"px";
}
</script>
</head>
<body>
...
<a href="javascript:editTop('elem1')" id="idTop">Hoch</a>
...
VG
infi
infi ist offline   Mit Zitat antworten
Alt 29.10.2010, 21:32  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo infi,

ich habe das mal so angepasst, nun habe ich das Problem das beim Start des Scriptes die Position nicht erkannt wird und somit der Wert als Start fehlt, dass kann man sehen wenn man auf den Link Position prüfen klickt.

Wenn ich einmal auf den Link Hoch klicke dann springt der Container einen Satz nach oben und erst dann existiert ein Wert aber im - Bereich, wenn ich dann weiter klicke funktioniert es.

Ich weis momentan nicht wirklich weiter.

Gruß Litter
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline   Mit Zitat antworten
Alt 29.10.2010, 22:04  
Benutzer
 
Registriert seit: 24.10.2010
Beiträge: 65
PHP-Kenntnisse:
Anfänger
infi befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von litterauspirna Beitrag anzeigen
Hallo infi,
ich habe das mal so angepasst, nun habe ich das Problem das beim Start des Scriptes die Position nicht erkannt wird und somit der Wert als Start fehlt, dass kann man sehen wenn man auf den Link Position prüfen klickt.
Im Anhang mal ein Auszug aus deinem Code, siehst du den Unterschied?
Code:
function getPositionX ( element ) {
		
		var posTop = element.style.top.replace(/px/, '');
		
		return posTop;
	}
	
	function getPositionY ( element ) {
		
		var posLeft = element.offsetLeft;
		
		return posLeft;
	}
Zitat:
Zitat von litterauspirna Beitrag anzeigen
Wenn ich einmal auf den Link Hoch klicke dann springt der Container einen Satz nach oben und erst dann existiert ein Wert aber im - Bereich, wenn ich dann weiter klicke funktioniert es.
einfach mal noch folgendes machen
Code:
<style type="text/css">
html,body {
margin: 0;
padding: 0;
}
</style>
Gute Nacht
infi ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Regulärer Ausdruck schlägt fehl HSFighter PHP Tipps 2010 2 20.08.2010 21:16
Einfache Abfrage schlägt fehl... GoPeter Datenbanken 2 16.06.2010 13:19
IE, replaceChild, name-Attribut identisch, Zugriff schlägt fehl Chriz JavaScript, Ajax und mehr 3 27.04.2010 16:47
[Erledigt] in_array schlägt fehl obwohl werte um array vorhanden sind litterauspirna PHP Tipps 2010 8 13.03.2010 14:57
Instanziierung schlägt bei bestimmten Versionen fehl biertje PHP Tipps 2010 6 27.02.2010 16:51
[Erledigt] Eintrag schlägt fehl Extremefall PHP Tipps 2009 17 19.12.2009 17:42
[Erledigt] Aktuellen Tag der aktuellen Kalenderwoche ermitteln schlägt fehl litterauspirna PHP Tipps 2009 8 08.12.2009 13:46
MySQL Verbindung schlägt fehl, trotz richtigem USER/PW CyberNibbler Datenbanken 5 24.09.2009 19:43
[Erledigt] DB-Abfrage -&gt; Ausgabe schlägt fehl kalli.c0re PHP Tipps 2009 12 31.07.2009 16:11
Funktionsaufruf schlägt fehl KönigDerHerzen PHP-Fortgeschrittene 3 05.06.2009 11:07
ReflectionClass export schlägt fehl bei Zugriff auf Klassenkonstante tereano PHP-Fortgeschrittene 4 30.03.2009 13:16
Gier unterdrücken schlägt fehl:( WAY_KOW PHP Tipps 2009 5 20.02.2009 17:07
.htaccess login schlägt fehl sternschnuppe99 Server, Hosting und Workstations 6 07.02.2008 13:37
login schlägt immer fehl sternschnuppe99 Server, Hosting und Workstations 3 07.02.2008 13:28
element am unteren rand positionieren AliceD HTML, Usability und Barrierefreiheit 1 07.09.2005 08:40

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
javascript px addieren, javascript style.top, pixel addieren, javascript style addieren, css % und px addieren, pixel summieren, javascript typecast px, js pixel addieren, document.getelementbyid().style.top addition, addition in css px-%, css px % addition, addieren von elementen, css addiere % px, javascript pixel addieren, pixel adieren, javascript position addieren, javascipt px addieren, javascript addieren px %, pixel aufsummieren, pixel addition

Alle Zeitangaben in WEZ +2. Es ist jetzt 10:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum