Autor |
Nachricht |
buchstabensuppe
Threadersteller
Dabei seit: 14.09.2004
Ort: Wuppertal
Alter: 40
Geschlecht:
|
Verfasst Mi 16.06.2010 12:07
Titel [JS] Was macht .init? Problem für body onload? |
|
|
Mahlzeit!
Ich verzweifle gerade mit meinem JS-Halbwissen an einem Problem.
Ich habe zwei Scripts ein eine Seite eingebunden, es funktioniert allerdings nur eins.
Dabei handelt es sich um einen kleinen ImageScroller, der über body onload aufgerufen wird. Das andere ist ein Tooltip Script welches, soweit ich das erkennen kann, erstmal alle Tags durchforstet und die title Tags durch eine Tooltip-Funktion ersetzt.
Gehe ich richtig in der Annahme, dass folgender Schnipsel das Script automatisch startet?
Zitat: | tooltip.init = function () { |
Leider finde ich nichts über die .init Funktion. Könnte mir diese jemand kurz erklären?
Könnten sich die beiden Anweisungen evtl. in die Quere kommen?
Also .init und onload? Beide Scripts laufen, wenn getrennt, prima.
Danke und Gruß
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mi 16.06.2010 12:17
Titel
|
|
|
am besten du verlinkst die seite oder postest die beiden scripts komplett, so kann man dir nicht helfen.
Zuletzt bearbeitet von m am Mi 16.06.2010 12:17, insgesamt 1-mal bearbeitet
|
|
|
|
|
Anzeige
|
|
|
SimonDerDude
Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 35
Geschlecht:
|
|
|
|
|
buchstabensuppe
Threadersteller
Dabei seit: 14.09.2004
Ort: Wuppertal
Alter: 40
Geschlecht:
|
Verfasst Mi 16.06.2010 12:20
Titel
|
|
|
Scroller, wird aufgerufen mit <body onload="initVS5()">. $strAusgabe wird vorher in einem PHP Script zusammengesetzt.
Zitat: | vs5Arr = [<? echo $strAusgabe; ?>];
sv3Timer = null;
preload = new Array();
for (var scrolleri=0; scrolleri<vs5Arr.length; scrolleri++) {
preload[scrolleri]=new Image();
preload[scrolleri].src=vs5Arr[scrolleri][0];
}
function initVS5() {
scrollBox = document.getElementById("scroll_box");
scroll1 = document.getElementById("scroller1");
for (var jLogoScrollScript=0; jLogoScrollScript<vs5Arr.length; jLogoScrollScript++) {
scroll1.innerHTML+='<img id="pic'+jLogoScrollScript+'" src="'+preload[jLogoScrollScript].src+'" alt="'+vs5Arr[jLogoScrollScript][2]+'" title="'+vs5Arr[jLogoScrollScript][2]+'" /><br />';
}
scrollBox.style.width=203+"px";
scroll2=document.getElementById("scroller2");
scroll2.innerHTML=scroll1.innerHTML;
scroll2.style.top=scroll1.offsetHeight+"px";
scrollVS5();
}
function scrollVS5(){
clearTimeout(sv3Timer);
scroll1Pos=parseInt(scroll1.style.top);
scroll2Pos=parseInt(scroll2.style.top);
scroll1Pos+=-2;
scroll2Pos+=-2;
scroll1.style.top=scroll1Pos+"px";
scroll2.style.top=scroll2Pos+"px";
sv3Timer=setTimeout("scrollVS5()",60);
if (scroll1Pos< -scroll1.offsetHeight) scroll1.style.top=scroll1.offsetHeight+"px";
if (scroll2Pos< -scroll1.offsetHeight) scroll2.style.top=scroll1.offsetHeight+"px";
} |
Und das Tooltip-Script
Zitat: | var qTipTag = "a"; /* Für welche Tags gilt der qTip? */
var qTipX = 10; /* X offset */
var qTipY = 5; /* Y offset */
tooltip = {name : "qTip", offsetX : qTipX, offsetY : qTipY, tip : null}
tooltip.init = function () {
var tipNameSpaceURI = "http://www.w3.org/1999/xhtml";
if (!tipContainerID) var tipContainerID = "qTip";
var tipContainer = document.getElementById(tipContainerID);
if (!tipContainer) {
tipContainer = document.createElementNS ? document.createElementNS(tipNameSpaceURI, "div") : document.createElement("div");
tipContainer.setAttribute("id", tipContainerID);
document.getElementsByTagName("body").item(0).appendChild(tipContainer);
}
if (!document.getElementById) return;
this.tip = document.getElementById (this.name);
if (this.tip) document.onmousemove = function (evt) {tooltip.move (evt)};
var a, sTitle, elements;
var elementList = qTipTag.split(",");
for (var j = 0; j < elementList.length; j++) {
elements = document.getElementsByTagName(elementList[j]);
if (elements) {
for (var i = 0; i < elements.length; i ++) {
a = elements[i];
sTitle = a.getAttribute("title");
if (sTitle) {
a.setAttribute("tiptitle", sTitle);
a.removeAttribute("title");
a.removeAttribute("alt");
a.onmouseover = function() {tooltip.show(this.getAttribute('tiptitle'))};
a.onmouseout = function() {tooltip.hide()};
}
}
}
}
}
tooltip.move = function (evt) {
var x=0, y=0;
if (document.all) {//IE
x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft;
y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop;
x += window.event.clientX;
y += window.event.clientY;
} else {//Good Browsers
x = evt.pageX;
y = evt.pageY;
}
this.tip.style.left = (x + this.offsetX) + "px";
this.tip.style.top = (y + this.offsetY) + "px";
}
tooltip.show = function (text) {
if (!this.tip) return;
this.tip.innerHTML = text;
this.tip.style.display = "block";
}
tooltip.hide = function () {
if (!this.tip) return;
this.tip.innerHTML = "";
this.tip.style.display = "none";
}
window.onload = function () {
tooltip.init ();
} |
Zuletzt bearbeitet von buchstabensuppe am Mi 16.06.2010 12:36, insgesamt 1-mal bearbeitet
|
|
|
|
|
buchstabensuppe
Threadersteller
Dabei seit: 14.09.2004
Ort: Wuppertal
Alter: 40
Geschlecht:
|
Verfasst Mi 16.06.2010 12:22
Titel
|
|
|
JQuery ist in diesem Fall nicht mit dabei
|
|
|
|
|
buchstabensuppe
Threadersteller
Dabei seit: 14.09.2004
Ort: Wuppertal
Alter: 40
Geschlecht:
|
Verfasst Mi 16.06.2010 13:01
Titel
|
|
|
Okay, funzt.
Ich habe im TooltipScript den Autostart rausgenommen.
Zitat: | window.onload = function () {
tooltip.init ();
} |
und rufe nun über onload beide Scripts auf.
Zitat: | <body onload="initVS5(); tooltip.init();"> |
|
|
|
|
|
|
|
|
Ähnliche Themen |
body {padding} und body{height:100%} möglich
HTML/CSS Problem mit <html><body> komischer Abstand unten
jquery Toggle onLoad
onLoad und CSS - background-image
javascript onload um div später zu laden
Vorlage im DW erstellt -> onload nur auf der index.php seite
|
|