php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS Probleme mit HTML5, Bootstrap oder jQuery ?

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 17-09-2003, 14:25
ChatJack
 Newbie
Links : Onlinestatus : ChatJack ist offline
Registriert seit: Sep 2002
Beiträge: 43
ChatJack ist zur Zeit noch ein unbeschriebenes Blatt
Standard Layer positionieren (Netscape)

Hallo,

ich beschäftige mich seit ein paar Wochen eingehend mit Javascript und stehe nun vor einem Kompatibilitätsproblem zwischen IE und Netscape.

Und zwar möchte ich per Javascript einen layer an eine ganz bestimmte stelle bewegen. Die X-Koordinate wird über die Maus bestimmt, die Y-Koordinate aus der Position eines Bildes.

Im Internet Explorer sieht das ganze so aus.

Code:
var check = 0;
function follow_cursor() {
  check = window.event.x-30;
  document.all.preview.style.left = check;
  document.all.preview.style.top = document.all.preview_pos.offsetTop+260;
  if (check > 438) { document.all.preview.style.left = 438; }
  if (check < 0) { document.all.preview.style.left = 0; }
}
Ich versuche schon seit ein paar Tagen, es 1:1 für den Netscape umzusetzen, habe es aber bis jetzt noch nicht geschafft. Momentan orientiert sich der Layer komplett an der Mausposition.

Wer sich die Seite mal anschauen will, besucht www.chatjack.de, klickt auf "Gallery", auf eine Gallerie, und dann auf ein Bild. Im Popup-Fenster steckt das Javascript.

Achtung, Quelltext extrem unübersichtlich ...

Bin für jede Hilfe dankbar ...

Gruß,
ChatJack
Mit Zitat antworten
  #2 (permalink)  
Alt 17-09-2003, 14:28
DZVO
 Junior Member
Links : Onlinestatus : DZVO ist offline
Registriert seit: Dec 2002
Beiträge: 91
DZVO ist zur Zeit noch ein unbeschriebenes Blatt
DZVO eine Nachricht über Yahoo! schicken
Standard

hm so weit ich weiss untersützt doch netscape keine layer da das doch eine mircosofterfindung ist
Mit Zitat antworten
  #3 (permalink)  
Alt 17-09-2003, 14:35
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

vorweg: hab mir deinen quellcode nich angeschaut

welcher netscape?
ns 4.x?
ns 6?
ns 7?
oder doch mozilla oder firebird?

google mal nach javascript und cross browser, du kannst nämlich auf elemente deiner seite nicht in jedem browser gleich zugreifen
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #4 (permalink)  
Alt 17-09-2003, 14:41
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von ChatJack
Ich versuche schon seit ein paar Tagen, es 1:1 für den Netscape umzusetzen, habe es aber bis jetzt noch nicht geschafft.
dafür müsstest du wohl erstmal den zugriff auf document.all durch etwas ersetzen, dass nicht IE-only ist ...

Zitat:
Original geschrieben von DZVO
hm so weit ich weiss untersützt doch netscape keine layer da das doch eine mircosofterfindung ist
andersherum. der <layer>-tag ist eine reine netscape-erfindung.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 17-09-2003, 15:25
ChatJack
 Newbie
Links : Onlinestatus : ChatJack ist offline
Registriert seit: Sep 2002
Beiträge: 43
ChatJack ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,
Zitat:
mrhappiness:
welcher netscape?
ns 4.x?
ns 6?
ns 7?
oder doch mozilla oder firebird?
Also am besten natürlich alle , vordergründig aber erstmal nur der 7er.

Mit 1:1 meine ich, dass es hinterher 1:1 aussieht. Wer sich die Seite mal im Netscape und im IE ansieht, wird merken, dass die Ebene unter Netscape dem Mauszeiger noch folgt, obwohl er an einer fest definierten Position erscheinen soll.

Auf der Seite sitzt einmal ein:

<div id="preview_pos"> ... </div>

Dessen Position gilt es zu ermitteln.

Und als zweites die Position des Mauszeigers, was meines Wissens auch unter Netscape funktioniert, ich aber noch nicht richtig hinbekommen habe.

Das Script, das momentan für die Cursor position zuständig ist, habe ich mir aus SelfHTML herausgeklaut. Das große Problem ist nur, dass ich es nicht wirklich verstehe.

Darüber hinaus funktionieren manche, als Netscape-Tauglich deklarierte Scripts, mit der 7er-Version garnicht.

Dieses Script habe ich übernommen:

Code:
function LayerPos(Ereignis)
{
 if (document.layers) {
           document.layers[2].left = Ereignis.pageX-30;
           document.layers[2].top = Ereignis.pageY-60;
                        }
 else if (window.netscape) {
      document.getElementsByTagName("div")[2].style.left = Ereignis.pageX-30;
      document.getElementsByTagName("div")[2].style.top = Ereignis.pageY-60;
 }
}

if (gecko) {document.onmousemove = LayerPos;}
Wer oder was definiert "Ereignis", und wie kann man diese Abfrage ganz normal in eine Funktion packen, ohne das Script gleich mit der Seite auszuführen.

Wie gesagt, hab's aus SelfHTML. Sobald ich Änderungen vornehme, die mir halbwegs logisch erscheinen geht wieder nichts mehr.

Danke!

Gruß,
ChatJack

Geändert von ChatJack (17-09-2003 um 15:39 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 17-09-2003, 15:42
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von ChatJack
Wer sich die Seite mal im Netscape und im IE ansieht, wird merken, dass die Ebene unter Netscape dem Mauszeiger noch folgt, obwohl er an einer fest definierten Position erscheinen soll.
natürlich tut sie das.

du bindest den aufruf der funktion an den event onmousemove - also wird bei jeder klitzekleinen bewegung der maus die position neu bestimmt, und zwar in bezug auf den mauszeiger.

Zitat:
Wer oder was definiert "Ereignis", und wie kann man diese Abfrage ganz normal in eine Funktion packen, ohne das Script gleich mit der Seite auszuführen.
das script ist so für deine zwecke überhaupt nicht gedacht/geeignet.

wenn du lediglich eine ebene an einer fest definierten position beim überfahren eines anderen elementes anzeigen willst, dann beschäftige dich mit absoluter positionierung und dem anzeigen/nicht anzeigen (visibility oder display) per css, und wie man diese eigenschaften dynamisch per JS verändern kann (siehe hier das zweite beispiel für die DOM-syntax).
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #7 (permalink)  
Alt 17-09-2003, 16:42
ChatJack
 Newbie
Links : Onlinestatus : ChatJack ist offline
Registriert seit: Sep 2002
Beiträge: 43
ChatJack ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

klappt leider immernoch nicht. Also wenn das so weiter geht, erklär ich Netscape für JavaScript-Experiment-Untauglich.

Momentan sieht's so aus.

Code:
document.getElementsByTagName("div")[2].style.left = pageX;
document.getElementsByTagName("div")[2].style.top = document.getElementsByTagName("div")[1].style.top+455;
Das Problem ist das "Wert ermitteln". Wenn ich rechts vom Gleichzeichen jeweils 100 hinschreibe sitzt er auch bei 100 / 100.

Weiß vielleicht jemand Rat?

Gruß,
ChatJack

Geändert von ChatJack (17-09-2003 um 16:50 Uhr)
Mit Zitat antworten
  #8 (permalink)  
Alt 17-09-2003, 16:58
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

document.getElementsByTagName("div")[2].style.top liefert einen string zurück, und zwar eine zahl plus eine maßeinheit.

wenn du jetzt zu beispielsweise "400px" 455 addierst, kommt da logischerweise "400px455" heraus. das ein browser damit nichts anzufangen weiss, dürfte logisch sein.


ausserdem hast du anscheinend meine anmerkung ignoriert, dass so etwas für dein problem (sofern ich es richtig verstanden habe, lediglich ein element auf einer festen position einzublenden beim überfahren eines anderen elementes) absolut unnötig ist.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 17-09-2003, 17:21
ChatJack
 Newbie
Links : Onlinestatus : ChatJack ist offline
Registriert seit: Sep 2002
Beiträge: 43
ChatJack ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hallo,

deine Anmerkung habe ich nicht ignoriert. Nur leider ist die Höhe der Ebene dynamisch, da sie direkt unten an der Bild-Auswahlleiste 'andocken' soll. Und die ist jenachdem wieviele Bilder es in einer Gallerie gibt, mal höher und mal tiefer.

Aber danke für den Tipp.

Werd mich mal mit den String-Funktionen auseinandersetzten, um mit den ermittelten Werten was anfangen zu können.

Gruß,
ChatJack

P.S.:

Kann mir jemand sagen warum ich bei:

document.write(document.getElementsByTagName("div")[0].style.left);

Keine Ausgabe bekomme?
Mit Zitat antworten
  #10 (permalink)  
Alt 17-09-2003, 23:34
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von ChatJack
Kann mir jemand sagen warum ich bei:
document.write(document.getElementsByTagName("div")[0].style.left);
Keine Ausgabe bekomme?
du kannst den wert einer css-eigenschaft nur dann abfragen, wenn du sie auch exlizit(*) gesetzt hast.



(*) afaik ist dafür sogar das setzen der eigenschaft über das style-attribut direkt im html-element selber notwendig, per externem css funktioniert es auch nicht.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #11 (permalink)  
Alt 18-09-2003, 11:50
ChatJack
 Newbie
Links : Onlinestatus : ChatJack ist offline
Registriert seit: Sep 2002
Beiträge: 43
ChatJack ist zur Zeit noch ein unbeschriebenes Blatt
Standard

So dank an alle,

hab's jetzt endlich über relativ unsaubere Umwege geschafft. Wenn jemand Zeit hat das Script mal kurz zu testen wäre das echt nett.

Hab's bis jetzt nur mit dem IE 5.5 & Netscape 7.1 testen können.

Gruß,
ChatJack

Geändert von ChatJack (18-09-2003 um 11:55 Uhr)
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:55 Uhr.