Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Dubbio script con .stop() - Principiante

    Ciao a tutti
    Sul mio libro c'è uno script che in effetti funziona bene, ma non ho capito il perchè.
    Sul libro non lo spiega.
    Qualcuno sa tradurmelo letteralmente?

    codice:
    <HTML>
    <HEAD>
    		<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
    		<script type="text/javascript" src="js/jquery-ui-1.7.3.custom.min.js"></script>
    <style type="text/css">
    #navigation {
                 position:absolute;
                }
    #content {height:2000px;}
    </style>
    </HEAD>
    <BODY>
    <div id="content"><div id="navigation">Scorri</div></div>
    <script type="text/javascript">
    $(window).scroll(function(){$("#navigation").stop().animate({top:$(document).scrollTop()},2000,"easeOutBounce");});
    </script>
    </BODY>
    </HTML>
    Non capisco..quando la barra di scorrimento del browser si muove, richiama la funziona anonima di scroll, ma ogni volta che si "attiva" c'è un .stop() che blocca il tutto. Eppure, quando lo ho testato sul browser, funziona perfettamente, ossia una volta spostata la barra di socrrimento del browser stesso, subito si sposta con un animazione anche l'oggetto div contentente "Scorri". Ma come si attiva l'animazione se c'è lo stop dinanzi e quindi l'animazione viene bloccata in partenza?
    Scusate se non mi sn espresso bn!
    Spero che qualcuno mi sia di aiuto.

    Graie mille
    Marco

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    stop blocca eventuali precedenti animazioni,
    e' utile per avere una ed una sola animazione per quella proprieta'

  3. #3
    Ma scrollTop() mi da il punto più alto di un oggetto, in questo caso di document giusto?
    Quindi supponendo che io muova la barra del browser per 1 secondo, in quel secondo la funzione si sarà ripetuta tantissime volte. A me servirebbe lo scrollTop() dell'ultima esecuzione della funzione in modo da sapere in modo preciso qual'è il punto più alto della parte del document in cui sn arrivato. Nella funzione sopra citata invece prende in considerazione solo la prima esecuzione della funzione, in quanto la prima volta che viene eseguita la funzione lo stop() non ha valore visto che non esisteva animazione, mentre dopo lo stop vale e qunidi il valere dello scrollTop() è della prima esecuzione è quindi è un valore sbagliato rispetto al valoro scrollTop() di dove io mi sn fermato in realtà.Perchè allora funziona correttamente?
    Penso di essermi spiegato un pò con i piedi..nel caso sia vero dimmelo
    Grazie mille e scusami della perdita di tempo.

    Marco

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    Originariamente inviato da marco476
    supponendo che io muova la barra del browser per 1 secondo, in quel secondo la funzione si sarà ripetuta tantissime volte.
    sicuramente, infatti questo script e' molto semplice
    non e' finalizzato ad ottenere il massimo in termini di prestazioni
    A me servirebbe lo scrollTop() dell'ultima esecuzione della funzione in modo da sapere in modo preciso qual'è il punto più alto della parte del document in cui sn arrivato.
    per farci altro? ricalcolalo a fine animazione, nel callback dell' animate
    uno stop di norma non esegue il callback, quindi il tuo dato sara' aggiornato solo alla fine dell' unica animazione che verra' completamente eseguita

    vuoi ottenere il valore massimo raggiunto tra scroll che avvengono in tempi diversi? salvi il valore che ottieni nel callback in una variabile globale solo se e' superiore a quello che gia' hai in quella variabile

    Nella funzione sopra citata invece prende in considerazione solo la prima esecuzione della funzione, in quanto la prima volta che viene eseguita la funzione lo stop() non ha valore visto che non esisteva animazione, mentre dopo lo stop vale e qunidi il valere dello scrollTop() è della prima esecuzione è quindi è un valore sbagliato rispetto al valoro scrollTop() di dove io mi sn fermato in realtà.
    no, stop "cancella" quanto rimasto di un eventuale animazione precedente, animate anima l' elemento fino allo scrollTop attuale, che viene ricalcolato al momento di settare il nuovo animate
    perche' mai dovrebbe prendere in considerazione il vecchio valore?

  5. #5
    Scusami, in poche parole, visto che c'è sempre lo stop() prima dell'animate, questo significa che l'animazione non verrà mai eseguita no?

  6. #6
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ho gia' scritto 2 volte cosa fa stop
    se non si verifica un ulteriore richiamo l' animazione verra' eseguita completamente

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.