/ Forside / Teknologi / Udvikling / Java Scripts / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java Scripts
#NavnPoint
molokyle 5410
Klaudi 2799
smorch 2439
kim 1360
Harlekin 1134
bentjuul 984
gibson 800
severino 695
Random 675
10  konsulent.. 626
hjælp til dette javascript
Fra : Claus Tersgov


Dato : 14-12-03 06:40

Hej eksperter

Jeg har fundet dette script på nettet, men der skal ændres en
variabel. Jeg kan bare ikke finde ud af hvilken?

Det er sne, som falder ned, men de stopper midt på siden. Jeg har en
side, hvor man skal scrolle, og vil gerne have, at snefnugne falder
helt ned i bunden. Jeg har ændret på "doc_height og width" uden at
det hjælper.

Jeg aner ikke en bønne om java, så hvad skal ændres?

Claus
*******************************
<!-- Original: Altan (snow@altan.hr) -->
<!-- Web Site: http://www.altan.hr/snow -->
<!-- Smaller flakes, subtle snowfall variables, code beautifcation and
makeSnow function by NoSLZZP -->
var no = 10; // snow number
var speed = 15; // smaller number moves the snow faster
var snowflake = "flake-small.gif";

var ns4up = (document.layers) ? 1 : 0; // browser sniffer
var ie4up = (document.all) ? 1 : 0;
var dx, xp, yp; // coordinate and position variables
var am, stx, sty; // amplitude and step variables
var i, doc_width = 1500, doc_height = 1500;
if (ns4up) {
doc_width = self.innerWidth;
doc_height = self.innerHeight;
} else if (ie4up) {
doc_width = 1500;
doc_height = 1500;
}
dx = new Array();
xp = new Array();
yp = new Array();
am = new Array();
stx = new Array();
sty = new Array();
for (i = 0; i < no; ++ i) {
dx[i] = 0; // set coordinate variables
xp[i] = Math.random()*(doc_width-50); // set position variables
yp[i] = Math.random()*doc_height;
am[i] = Math.random()*20; // set amplitude variables
stx[i] = 0.02 + Math.random()/10; // set step variables
sty[i] = 0.7 + Math.random(); // set step variables
if (ns4up) { // set layers
if (i == 0) {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
document.write("top=\"15\" visibility=\"show\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></layer>");
} else {
document.write("<layer name=\"dot"+ i +"\" left=\"15\" ");
document.write("top=\"15\" visibility=\"show\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></layer>");
}
} else if (ie4up) {
if (i == 0) {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
} else {
document.write("<div id=\"dot"+ i +"\" style=\"POSITION: ");
document.write("absolute; Z-INDEX: "+ i +"; VISIBILITY: ");
document.write("visible; TOP: 15px; LEFT: 15px;\"><img src=\"");
document.write(snowflake + "\" border=\"0\"></div>");
}
}
}
function snowNS() { // Netscape main animation function
for (i = 0; i < no; ++ i) { // iterate for every dot
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = self.innerWidth;
doc_height = self.innerHeight;
}
dx[i] += stx[i];
document.layers["dot"+i].top = yp[i];
document.layers["dot"+i].left = xp[i] + am[i]*Math.sin(dx[i]);
}
setTimeout("snowNS()", speed);
}

function snowIE() { // IE main animation function
for (i = 0; i < no; ++ i) { // iterate for every dot
yp[i] += sty[i];
if (yp[i] > doc_height-50) {
xp[i] = Math.random()*(doc_width-am[i]-30);
yp[i] = 0;
stx[i] = 0.02 + Math.random()/10;
sty[i] = 0.7 + Math.random();
doc_width = document.body.clientWidth;
doc_height = document.body.clientHeight;
}
dx[i] += stx[i];
document.all["dot"+i].style.pixelTop = yp[i];
document.all["dot"+i].style.pixelLeft = xp[i] +
am[i]*Math.sin(dx[i]);
}
setTimeout("snowIE()", speed);
}

if (ns4up) {
snowNS();
} else if (ie4up) {
snowIE();
}
**********************




 
 
Lasse Reichstein Nie~ (14-12-2003)
Kommentar
Fra : Lasse Reichstein Nie~


Dato : 14-12-03 12:27

"Claus Tersgov" <nospamnews@tersgov.dk> writes:

> Jeg har fundet dette script på nettet, men der skal ændres en
> variabel. Jeg kan bare ikke finde ud af hvilken?

Der skal ændres en masse andet hvis det skal virke i andet end IE og
Netscape 4. Scriptet er helt klart fra dengang der kun var to browsere
(IE 4 og Netscape 4), og er ikke egnet til internettet nu. Det vil fx
ikke virke i Netscape 6+/Mozilla, og vil sikkert også fejle i mange
andre browsere.

> Det er sne, som falder ned, men de stopper midt på siden. Jeg har
> en side, hvor man skal scrolle, og vil gerne have, at snefnugne
> falder helt ned i bunden. Jeg har ændret på "doc_height og width"
> uden at det hjælper.

Det er ellers dem der skal ændres, så vidt jeg kan se. Linjen der
får et fnug til at stoppe er:
> if (yp[i] > doc_height-50) {
(der er en i snowIE og en i snowNS).

Hvor ændrer du doc_height? Den bliver sat i denne kode:

> var ns4up = (document.layers) ? 1 : 0; // browser sniffer
> var ie4up = (document.all) ? 1 : 0;

... browser-sniffing er en *meget* dårlig idé, specielt fordi et
gammelt script som dette ikke kender de moderne browsere. Der er
andre browsere end Netscape 4 og IE, som ikke matcher nogen af de
to.

> var i, doc_width = 1500, doc_height = 1500;

Her sættes default.

> if (ns4up) {
> doc_width = self.innerWidth;
> doc_height = self.innerHeight;

her sættes doc_height hvis browseren er IE 4 (eller OmniWeb til Mac, som
også har "document.layers" - det virker bare ikke).

> } else if (ie4up) {
> doc_width = 1500;
> doc_height = 1500;

og her sættes doc_height i IE (og andre browsere der forstår document.all)

> }


> Jeg aner ikke en bønne om java,

Det er heller ikke vigtigt, for scriptet er i Javascript, et helt
andet sprog, som ikke har ret meget med java at gøre (ca. fire
bogtaver og en syntax de begge har stjålet fra C).


Jeg anbefaler at skrotte dette skript. Det er simpelt hen forældet.

/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'

Claus Tersgov (17-12-2003)
Kommentar
Fra : Claus Tersgov


Dato : 17-12-03 16:32



Uheldigvis faldt Lasse Reichstein Nielsen over tastaturet og skrev
derved følgende:

> Det er ellers dem der skal ændres, så vidt jeg kan se. Linjen der
> får et fnug til at stoppe er:
>> if (yp[i] > doc_height-50) {
> (der er en i snowIE og en i snowNS).

Øv, jeg har rodet med det nu i alt for lang tid, uanset hvad jeg gør,
så virker det ikke. Jeg kan simpelthen ikke få sneen til at falde
længere ned...

> Jeg anbefaler at skrotte dette skript. Det er simpelt hen forældet.


Det var det eneste, jeg kunne finde...

Claus


Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste