sh0x
Erfahrenes Mitglied
Javascript Newsfader: Kritisiert mich!
Ich habe mal einen Newsfader geschrieben, den man mit einigen Einstellungen anpassen kann.
Getestet unter Firefox 0.8, Internet Explorer 5.5, Netscape 4 und 7.1.
Da ich Einsteiger in Javascript bin, würde ich gerne von euch wissen, was ich am Code noch verbessern könnte, bzw. ein paar Tricks, die ich anwenden könnte.
Oder fallen euch Fehler auf, die unbedingt noch behoben werden müssen?
Alles, sei es positiv oder negativ, was euch auffällt, bitte ich mir zu schreiben.
@Moderator: Wenn der Ticker eine Bereicherung für die Community ist, würde ich mich bereiterklären, ein Tutorial zu schreiben. Kannst mir ja PN schreiben.
Beste Grüße ,
sh0x
Ich habe mal einen Newsfader geschrieben, den man mit einigen Einstellungen anpassen kann.
Getestet unter Firefox 0.8, Internet Explorer 5.5, Netscape 4 und 7.1.
Da ich Einsteiger in Javascript bin, würde ich gerne von euch wissen, was ich am Code noch verbessern könnte, bzw. ein paar Tricks, die ich anwenden könnte.
Oder fallen euch Fehler auf, die unbedingt noch behoben werden müssen?
Alles, sei es positiv oder negativ, was euch auffällt, bitte ich mir zu schreiben.
@Moderator: Wenn der Ticker eine Bereicherung für die Community ist, würde ich mich bereiterklären, ein Tutorial zu schreiben. Kannst mir ja PN schreiben.
Beste Grüße ,
sh0x
Code:
// #########################################################################################################################
// Newsfader Beta Version 0.1
// Autor : Bastian ******* aka sh0x
// Datum: 15.04.2005
//
// +++ Einstellungen für den Ticker
var A_Tickertext = new Array();
A_Tickertext[0] = "Webseite wurde aktualisiert: News-Section nun vorhanden.";
A_Tickertext[1] = "Grüne Frösche wurden gequält: Das Oberlandesgericht klagt!";
A_Tickertext[2] = "Fans erwarteten es schon lange: Basti gewinnt Schönheitswettbewerb!";
A_Tickertext[3] = "Morgen Pizza in der Kantine erhältlich...";
var StartTag = "+++ "; // optionale Tags, wie z.B. +++ vor bzw. nach dem Content
var EndTag = " +++";
var newsschaltzeit = 3000; // Zeit, bis die nächsten News kommen
var dimmschaltzeit = 20; // Zeit in Millisek, mit der die Farbe gedimmt wird
var r = 0; // Diese Werte geben die Farbe an, von der aus losgedimmt werden soll
var g = 0;
var b = 0;
var zielr = 255; // Diese Werte kennzeichnen die Farbe, zu der gedimmt werden soll
var zielg = 255;
var zielb = 255;
var faktor = 10; // Faktor gibt die Anzahl der Dimmschritte an
// Ab hier bitte nichts mehr ändern.
// #########################################################################################################################
// Browsererkennung
var ns4lay=(document.layers && navigator.appName.toLowerCase().indexOf('netscape')!=-1) ? 1 : 0; // wenn Layers vorhanden und netscape vorkommt ist es ns4
var docall=document.all ? 1 : 0;
var w3cdom=document.getElementById ? 1 : 0;
//wichtige Zählervariablen:
var i=0;
var j=0;
//Anlegen einer Kopie der Originalfarben
var kopier = r;
var kopieg = g;
var kopieb = b;
//Berechnungen der Farbbereiche und der Schrittweite
var bereichr = (kopier - zielr > 0) ? kopier - zielr : zielr - kopier;
var bereichg = (kopieg - zielg > 0) ? kopieg - zielg : zielg - kopieg;
var bereichb = (kopieb - zielb > 0) ? kopieb - zielb : zielb - kopieb;
var schrittr = (bereichr/faktor);
var schrittg = (bereichg/faktor);
var schrittb = (bereichb/faktor);
function ZeitenPruefen() {
if (dimmschaltzeit * faktor >=newsschaltzeit) {
return false;
}
return true;
}
function FarbeSetzen() {
kopier = r;
kopieg = g;
kopieb = b;
}
function LieferObjekt(id) {
if (w3cdom) {return document.getElementById(id);}
else if (docall) {return document.all(id);}
else if (ns4lay) {return eval('document.'+id);}
return false;
}
function SwitchText() {
if (ZeitenPruefen()) {
if (w3cdom || docall) {
LieferObjekt('bastiticker').style.color="rgb("+r+","+g+","+b+")";
LieferObjekt('bastiticker').innerHTML=StartTag+A_Tickertext[i]+EndTag;
FarbDimmen();
}
else if (ns4lay) {
LieferObjekt('bastiticker_ns').document.fscrollerns_sub.document.open();
LieferObjekt('bastiticker_ns').document.fscrollerns_sub.document.clear();
LieferObjekt('bastiticker_ns').document.fscrollerns_sub.document.write(StartTag+A_Tickertext[i]+EndTag);
LieferObjekt('bastiticker_ns').document.fscrollerns_sub.document.close();
}
if (i<A_Tickertext.length-1) {i++;}
else {i=0;}
setTimeout("SwitchText()",newsschaltzeit);
}
else alert('Dimmschaltzeit * Faktor ist mehr als die Newsschaltzeit');
}
function abs(zahl) {
if (zahl < 0) zahl=-zahl;
return zahl;
}
function FarbDimmen() {
kopier = Math.round((kopier > zielr) ? kopier - schrittr : kopier + schrittr); // Ziehe die Schrittweite ab oder füge sie hinzu je nachdem
kopieg = Math.round((kopieg > zielg) ? kopieg - schrittg : kopieg + schrittg);
kopieb = Math.round((kopieb > zielb) ? kopieb - schrittb : kopieb + schrittb);
LieferObjekt('bastiticker').style.color="rgb("+kopier+","+kopieg+","+kopieb+")";
j++;
if (j<faktor) {
setTimeout('FarbDimmen()',dimmschaltzeit);
}
else {
LieferObjekt('bastiticker').style.color="rgb("+zielr+","+zielg+","+zielb+")";
j=0;
FarbeSetzen();
return true;
}
}
Anhänge
Zuletzt bearbeitet: