Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
[JS]Przycisk wyłączający skrypt
#1
Elo, zrobiłem sobie spadające elementy na stronie z tego poradnika

Cytat:////////////////////////////////////////////////////////////////
// Javascript made by Rasmus - http://www.peters1.dk //
////////////////////////////////////////////////////////////////

var SNOW_Picture = "link do spadającego elementu"
var SNOW_no = 15;

var SNOW_browser_IE_NS = (document.body.clientHeight) ? 1 : 0;
var SNOW_browser_MOZ = (self.innerWidth) ? 1 : 0;
var SNOW_browser_IE7 = (document.documentElement.clientHeight) ? 1 : 0;

var SNOW_Time;
var SNOW_dx, SNOW_xp, SNOW_yp;
var SNOW_am, SNOW_stx, SNOW_sty;
var i, SNOW_Browser_Width, SNOW_Browser_Height;

if (SNOW_browser_IE_NS)
{
SNOW_Browser_Width = document.body.clientWidth;
SNOW_Browser_Height = document.body.clientHeight;
}
else if (SNOW_browser_MOZ)
{
SNOW_Browser_Width = self.innerWidth - 20;
SNOW_Browser_Height = self.innerHeight;
}
else if (SNOW_browser_IE7)
{
SNOW_Browser_Width = document.documentElement.clientWidth;
SNOW_Browser_Height = document.documentElement.clientHeight;
}

SNOW_dx = new Array();
SNOW_xp = new Array();
SNOW_yp = new Array();
SNOW_am = new Array();
SNOW_stx = new Array();
SNOW_sty = new Array();

for (i = 0; i < SNOW_no; ++ i)
{
SNOW_dx[i] = 0;
SNOW_xp[i] = Math.random()*(SNOW_Browser_Width-50);
SNOW_yp[i] = Math.random()*SNOW_Browser_Height;
SNOW_am[i] = Math.random()*20;
SNOW_stx[i] = 0.02 + Math.random()/10;
SNOW_sty[i] = 0.7 + Math.random();
if (i == 0) document.write("<\div id=\"SNOW_flake"+ i +"\" style=\"position: absolute; z-index: "+ i +"; visibility: visible; top: 15px; left: 15px;\"><a href=\"http://www.peters1.dk\" target=\"_blank\"><\img src=\""+SNOW_Picture+"\" border=\"0\"></a><\/div>");
else document.write("<\div id=\"SNOW_flake"+ i +"\" style=\"position: absolute; z-index: "+ i +"; visibility: visible; top: 15px; left: 15px;\"><\img src=\""+SNOW_Picture+"\" border=\"0\"><\/div>");
}

function SNOW_Weather()
{

for (i = 0; i < SNOW_no; ++ i)
{
SNOW_yp[i] += SNOW_sty[i];

if (SNOW_yp[i] > SNOW_Browser_Height-50)
{
SNOW_xp[i] = Math.random()*(SNOW_Browser_Width-SNOW_am[i]-30);
SNOW_yp[i] = 0;
SNOW_stx[i] = 0.02 + Math.random()/10;
SNOW_sty[i] = 0.7 + Math.random();
}

SNOW_dx[i] += SNOW_stx[i];

document.getElementById("SNOW_flake"+i).style.top=SNOW_yp[i]+"px";
document.getElementById("SNOW_flake"+i).style.left=SNOW_xp[i] + SNOW_am[i]*Math.sin(SNOW_dx[i])+"px";
}

SNOW_Time = setTimeout("SNOW_Weather()", 10);

}

SNOW_Weather();


Wklej to do notatnika, uzupełnij i zapisz jako matrix.js , i wrzuć na ftp.

CYTAT
<script type="text/javascript" src="link do pliku matrix.js"></script>

Później wklej ten kod gdzie będziesz chciał.


Czy istnieje możliwość zrobienia na stronie 2 przycisków? Włączającego i wyłączającego ten skrypt?
Odpowiedz
#2
Hmmm. Pewnie tak ;]

<input type="button" id="wlacz" value="+" />
<input type="button" id="wylacz" value="-" />
<script type="text/javascript">
document.getElementById('wlacz').onclick = SNOW_Weather;
documen.getElementById('wylacz').onclick = function() {clearTimeout(SNOW_Time); lecimy = false;}
</script>

Dobrze tez przerobic linijkę w twoim skrypcie z

SNOW_Time = setTimeout("SNOW_Weather()", 10);

na

if (lecimy) SNOW_Time = setTimeout("SNOW_Weather()", 10);

i dodac deklaracje tej zmiennej na poczatku twojego skryptu

var lecimy = true; // <---- DEKLARACJA
var SNOW_Picture = "link do spadającego elementu"
var SNOW_no = 15;
Odpowiedz
#3
wyszło ci 1/3 Big Grin

naciśnięcie plusa powoduje szybszy ruch elementów natomiast minusa nic, może coś źle wkleiłem

ale i tak dzieki, jesli wiesz co mogłem zrobić źle proszę o podpowiedź
Odpowiedz
#4
Noc jest, więc głupoty gadam. Tamtego posta nie było.

Zrób dwa guziki jak pisałem (mimo że nie pisałem), po czym podepnij im poniższy skrypcik:

document.getElementById('wlacz').onclick = function() {SNOW_Weather();}
document.getElementById('wylacz').onclick = function() {clearTimeout(SNOW_Time);}
Odpowiedz
#5
Big Grin że tak powiem idzie ci coraz lepiej, wszystko działa tyle że minus zatrzymuje elementy ale one nie znikają, może tego się nie da zrobić?
ale musze przyznać niezły jesteś i tak
Odpowiedz
#6
Dobra. Przerobiłem ci pobieżnie ten skrypt, stosując nieco nowocześniejsze metody. Całości nie przerabiałem, bo jestem śmierdzący leń.

Całość kodu wraz z html zamieszczam poniżej. Skopiuj, wklej, odpal. I przeanalizuj czemu zrobiłem to tak, a nie inaczej. I przy okazji obczaj sobie tą lekcję:

http://doman.art.pl/kursjs/kurs/hierarchia/hierarchia_tworzenie_i_usuwanie.html

Kod:
<html>
<body>
<input type="button" id="wlacz" value="+" />
<input type="button" id="wylacz" value="-" />
</body>
<script>
////////////////////////////////////////////////////////////////
// Javascript made by Rasmus - http://www.peters1.dk //
////////////////////////////////////////////////////////////////

var SNOW_Picture = "gwiazdka3d.gif"
var SNOW_no = 15;

var SNOW_browser_IE_NS = (document.body.clientHeight) ? 1 : 0;
var SNOW_browser_MOZ = (self.innerWidth) ? 1 : 0;
var SNOW_browser_IE7 = (document.documentElement.clientHeight) ? 1 : 0;

var SNOW_Time;
var SNOW_dx, SNOW_xp, SNOW_yp;
var SNOW_am, SNOW_stx, SNOW_sty;
var i, SNOW_Browser_Width, SNOW_Browser_Height;

if (SNOW_browser_IE_NS)
{
SNOW_Browser_Width = document.body.clientWidth;
SNOW_Browser_Height = document.body.clientHeight;
}
else if (SNOW_browser_MOZ)
{
SNOW_Browser_Width = self.innerWidth - 20;
SNOW_Browser_Height = self.innerHeight;
}
else if (SNOW_browser_IE7)
{
SNOW_Browser_Width = document.documentElement.clientWidth;
SNOW_Browser_Height = document.documentElement.clientHeight;
}

////////////////////////////////////////////////////////////////
///______________________________ OD TAD ZMIENILEM ____________________
////////////////////////////////////////////////////////////////

var    SNOW_dx = new Array();
var    SNOW_xp = new Array();
var    SNOW_yp = new Array();
var    SNOW_am = new Array();
var    SNOW_stx = new Array();
var    SNOW_sty = new Array();

function snow_create() {
    SNOW_dx = new Array();
    SNOW_xp = new Array();
    SNOW_yp = new Array();
    SNOW_am = new Array();
    SNOW_stx = new Array();
    SNOW_sty = new Array();

    for (i = 0; i < SNOW_no; ++ i)
    {
    SNOW_dx[i] = 0;
    SNOW_xp[i] = Math.random()*(SNOW_Browser_Width-50);
    SNOW_yp[i] = Math.random()*SNOW_Browser_Height;
    SNOW_am[i] = Math.random()*20;
    SNOW_stx[i] = 0.02 + Math.random()/10;
    SNOW_sty[i] = 0.7 + Math.random();
    var platek = document.createElement('div');
        platek.id = 'SNOW_flake' + i;
        platek.style.position = 'absolute';
        platek.style.zIndex = i;
        platek.style.top = '15px';
        platek.style.left = '15px';
    var obrazek = document.createElement('img');
        obrazek.src = SNOW_Picture;
        
    platek.appendChild(obrazek);
    document.getElementsByTagName('body')[0].appendChild(platek);
    }
    SNOW_Weather();
}

function snow_delete() {
    clearTimeout(SNOW_Time);
    
    SNOW_dx = new Array();
    SNOW_xp = new Array();
    SNOW_yp = new Array();
    SNOW_am = new Array();
    SNOW_stx = new Array();
    SNOW_sty = new Array();

    for (i = 0; i < SNOW_no; ++ i)
    {
        var platek = document.getElementById("SNOW_flake"+ i);
        console.log(platek);
        platek.parentNode.removeChild(platek);
    }
}


function SNOW_Weather()
{

    for (i = 0; i < SNOW_no; ++ i)
    {
    SNOW_yp[i] += SNOW_sty[i];

    if (SNOW_yp[i] > SNOW_Browser_Height-50)
    {
    SNOW_xp[i] = Math.random()*(SNOW_Browser_Width-SNOW_am[i]-30);
    SNOW_yp[i] = 0;
    SNOW_stx[i] = 0.02 + Math.random()/10;
    SNOW_sty[i] = 0.7 + Math.random();
    }

    SNOW_dx[i] += SNOW_stx[i];

    document.getElementById("SNOW_flake"+i).style.top=SNOW_yp[i]+"px";
    document.getElementById("SNOW_flake"+i).style.left=SNOW_xp[i] + SNOW_am[i]*Math.sin(SNOW_dx[i])+"px";
    }

    SNOW_Time = setTimeout("SNOW_Weather()", 10);

}

snow_create();

document.getElementById('wlacz').onclick = function() {
    snow_create()
}
document.getElementById('wylacz').onclick = function() {
    snow_delete();
}
</script>
</html>
Odpowiedz
#7
nie wiem czy taki głupi jestem ale nadal nie znikają tylko się zatrzymują
Odpowiedz
#8
eh. chyba jestem pijany. Usuń z tego skryptu co ci dałem linijkę console.log(.....);
Odpowiedz
#9
no, dzięki stary, jesteś dla mnie prawie jak bóg,
jestem ci bardzo wdzięczny
Odpowiedz
#10
Możesz mi mówić Spagetti ;]
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  skrypt uruchamiajacy nowy link Arnimarl 1 2,888 26-05-2014, 00:34
Ostatni post: Kartofelek
  Własny przycisk play Olsz4k 1 2,765 28-05-2013, 18:27
Ostatni post: atp
  Poszukiwany skrypt/tutorial na niego Olsz4k 7 5,121 18-03-2013, 19:48
Ostatni post: kornell
  Poszukiwany skrypt/sposób Olsz4k 2 2,722 12-02-2013, 05:50
Ostatni post: Olsz4k
  CSS i skrypt na spadanie śniegu Reconnect 24 17,131 08-12-2012, 23:51
Ostatni post: Reconnect

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
SeoHost.pl