Ergebnis 1 bis 2 von 2
  1. #1
    vincentVirgile ist offline Jungspund
    registriert
    01-03-2010
    Beiträge
    20

    offsetLeft , offsetTop cross browser bei unterschiedlichen browser zoom einstellungen

    Hallo an allen,
    in bin gerade dabei ein kleines spiel zu programmieren...
    mein ziel war dies zu machen ohne jquery, weil ich ein bischen vertiefter mit js
    arbeiten wollte, ohne der luxus von existente komponent bzw. libraries.
    Do more... script less ist gut für firmen, aber nicht gesund für die root kenntnisse
    beim programmieren :-p
    anyway jquery ist also nicht das thema ;-)

    Ich habe also in mein spiel ein div das man bewegen kann durch mein spiel bzw. meine bühne.
    funktioniert eigentlich sehr gut, bis auf folgendes problem...
    wenn alle browser auf normale zoom faktor stehen (100%) funktioniert alles gut.
    wenn man auszoomed bzw. 3 steps - zoom entsteht eine abweichung von 3px. und umgekehrt wenn ich über 100% gehe zb. 3 steps + zoom.

    m.a.w offsetLeft & offsetTop ist nur konsistent in Firefox auf alle zoomfactoren und Crossbrowser auf 100% bzw. standard zoom factor.
    Ich habe versucht die fehlende pixel auszugeleichen, aber ist noch nicht ausgereift und ein bischen haliwali :-p es gab auch mehrer beispiele auf quirksmode.org om die position zu berechnen über die offsetParent, aber war auch ein bischen faul... wie würdet Ihr diese problem lösen ohne jquery... "script more, learn more..."

    Code:
    			
        function get_position(obj){
    	 /*{{{
    	  DISCOVERED BUG IN SAFARI, CHROME, OPERA, IE!
    	  When the browser zoom factor is !!not set on normal (100%)
    	  the offsetLeft and offsetTop are not consistent
    	//}}}
    	*/
    				
    	var x = obj.offsetLeft ;
    	var y = obj.offsetTop ;										
    			     
           /* 
             //versuch positionen zu korrigieren, scheitert leider bei offsetWidth 99% 
            //Correct offsets / Works fine in zoom b<99% <=100%  on 99% problems occure!
    	if(!isFirefox()&&obj.offsetWidth<100){
    	     if(x>0) x=obj.offsetLeft+(100-(x%100));
    	     if(y>0) y=obj.offsetTop+(100-(y%100));
    	}	
            */
    	return {'left': x, 'top': y }  
        }


    ;-)

    Lg,

    Vincent

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.667

    AW: offsetLeft , offsetTop cross browser bei unterschiedlichen browser zoom einstellu

    Kannst du bitte mal einen Testlink machen, der dein Problem verdeutlicht.

Ähnliche Themen

  1. cross browser layer bewegen
    Von timer im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 26-07-2015, 11:58
  2. Browser Zoom automatisch ansteuern
    Von Acehunter im Forum JavaScript
    Antworten: 1
    Letzter Beitrag: 13-07-2009, 15:40
  3. Cross-Browser
    Von Bieber im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 11-12-2007, 11:11
  4. Cross browser Marquee script
    Von svenklm im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 14-10-2005, 17:55
  5. Cross-Browser Bookmark Script
    Von Harry Hunt im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 12-07-2005, 19:12

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •