Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript]Zmiana rozmiaru diva w js
Pitter
post
Post #1





Grupa: Zarejestrowani
Postów: 75
Pomógł: 8
Dołączył: 9.08.2008

Ostrzeżenie: (0%)
-----


Witam. Już jakiś czas główkuje nad tym jak zmienić szybko zmienić rozmiar diva. Przykład:

Div ma długość i wysokość równą 700px. Chce aby po kliknięciu w link zmienił swoje rozmiary do 10px. Nie pytajcie po co mi coś takiego, ponieważ w rzeczywistości tak to nie wygląda. Ok. Mam już taki kod:
Kod
function changeSize(width)
{
element.style.width = width;
if(width > 50) setTimeout(function() { changeSize(width++); }, 1);
}


Z grubsza tak to wygląda. I teraz problem polega na tym, że wszystko dzieje się za wolno. Nie wiem jak to przyśpieszyć. Czas jest ustawiony minimalnie.
Może macie jakiś inny pomysł? Może istnieje jakaś funkcja gotowa?
Go to the top of the page
+Quote Post
markac
post
Post #2





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 23.02.2005

Ostrzeżenie: (10%)
X----


java script:
Kod
$("div").one('click', function () {
   $(this).width(30);
});

Polecam jQuery http://docs.jquery.com/CSS/width.

Ten post edytował markac 29.04.2009, 18:28:41
Go to the top of the page
+Quote Post
singles
post
Post #3





Grupa: Zarejestrowani
Postów: 121
Pomógł: 26
Dołączył: 2.07.2007

Ostrzeżenie: (0%)
-----


@Pitter - nie napisałeś, że chcesz animować, chociaż na to wskazuje kod który podałeś. Zmiana rozmiaru w JS wygląda mniej więcej tak:
Kod
<html>
<head>
<script type="text/javascript">
function changeSize(el) {
    var currentWidth = parseInt(el.style.width);
    currentWidth++;
    el.style.width = currentWidth;
}
function runAnimation(el) {
    setInterval(changeSize, 100, el);
}
</script>
<body>
<div onclick="runAnimation(this)" style="border: 1px solid black; width: 500px; height: 500px">Tresc</div>
</body>
</html>


Ty robiłeś to za pomocą setTimeout, co wprowadza opóźnienie - jeśłi chodzi o wykonywanie co określony czas, to powinno się stosować setInterval. Oczywiście funkcja runAnimation powinna przyjmować drugi parametr, czyli końcowy rozmiar, który jeśli zostanie przekroczony w changeSize(), to wyłaczasz animację za pomocą clearInterval.

Jeśli nie chcesz animacji, to funkcja do zmiany rozmiaru wygląda następująco:
Kod
changeSize(element, size) {
    element.style.width = size;
}


@markac - jQuery świetną biblioteką jest, ale uważam, że zaprzęganie jej tylko do zmiany rozmiaru mija się z celem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował singles 29.04.2009, 21:33:52
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 00:52