Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Script che torna al Top pagina dopo che lo scrool è giunto al Bottom

    Salve, la mia è una richiesta di integrazione, dato che non ho molta dimestichezza di javascript.

    Ho realizzato una pagina asp.net con visual studio 2010, codice vb.net.

    Di seguito posto il codice funzionante di uno script che ho applicato.

    Lo script fa scrollare la pagina verso il basso ogni 5 secondi. La mia difficoltà è integrarlo in modo che torni a inizio pagina, in un colpo solo, nel momento in cui lo scrool verso il basso non può più proseguire.

    <script type="text/javascript">
    function scrollWin(x, y) {
    window.scrollBy(x, y);
    }
    setInterval(function () {document.getElementById("cmdScendi").click(); }, 5000); // milliseconds, 10 seconds = 10000ms
    </script>

    <button id="cmdScendi" runat="server" visible="true" style="width:10px; color:Red;" onclick="scrollWin(0, 600)"></button>
    Mi sarebbe di aiuto anche se indicasse qualche link per trovare quello che cerco, vorrei arrecare il meno disturbo possibile.

    Grazie in anticipo.

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,000
    Scusa ma con window.scrollBy(x, y); non scorre sempre alle stesse coordinate ?

  3. #3
    Scorre ogni 5 secondi, ma una volta giunto a fine pagina non torna a inizio pagina.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,684
    Ciao, per capire quando il valore dello scroll è arrivato alla fine della pagina puoi usare una condizione confrontando opportunamente le proprietà di scorrimento e altezza della finestra; qui un link su stackoverflow: https://stackoverflow.com/questions/...lled-to-bottom

    Per tornare ad inizio pagina puoi usare scrollTo(0,0).

    A parte questo, mi chiedo a cosa ti serve, dal setInterval, passare attraverso il click di quel pulsante
    Non sarebbe più semplice richiamare direttamente scrollWin o, meglio, direttamente la funzione nativa window.scrollBy()?

    A meno che non ci sia dell'altro che renda necessario quel molteplice passaggio (posso supporre sia così), non ne vedo l'utilità.

    Qui un esempio (senza pulsante):
    codice HTML:
    <!DOCTYPE HTML>
    <html lang="it">
      <head>
        <title>Esempio</title>
        <script>
        
            setInterval(function (){
                if (window.innerHeight + window.scrollY >= document.body.offsetHeight) window.scrollTo(0, 0);
                else window.scrollBy(0, 600);
            }, 5000);
            
        </script>
      </head>
      <body>
        <div style="width: 50px; margin:0 auto; background: tan; word-break: break-all;">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi venenatis nibh sit amet mi elementum semper. 
        Quisque suscipit sem non est eleifend consectetur. Suspendisse malesuada massa lorem, id pharetra arcu iaculis a. 
        Aliquam in dolor vitae purus interdum vulputate vel ac augue. Nulla congue vehicula purus eget scelerisque. 
        Nullam suscipit metus id sem eleifend, ut molestie eros dictum. Curabitur faucibus urna nec ullamcorper pharetra. 
        Nunc eget lacus at arcu scelerisque gravida ut non lectus. Donec sit amet felis in justo hendrerit ornare eu sed risus. 
        Fusce suscipit, eros id cursus suscipit, urna orci ullamcorper velit, sed ultricies mauris enim sed quam. 
        Sed nibh ante, tempor ac eleifend non, sodales a massa. Phasellus ornare elementum semper. 
        Maecenas ullamcorper libero ex, eleifend porttitor lacus convallis a.
        </div>
      </body>
    </html>
    .

    Fai sapere
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Ci siamo quasi, ho ascoltato il tuo consiglio, l'evento click in effetti non mi serve. Purtroppo, come premesso nel primo messaggio, non ho una buona conoscenza di java.

    Nel dettaglio, mostro a video una gridview; ogni 5 secondi la scrollbar scorre verso il basso. Arrivato a fondo pagina in realtà dovrei ricaricare la pagina asp.net e non limitarmi a un semplice scrollTo(0,0), perchè i dati potrebbero cambiare, quindi va effettuata una nuova una interrogazione al Database.

    Ho applicato il tuo script e va benissimo, devo trovare il modo di sostituire lo scrollTo(0,0) con un refresh pagina.

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,684
    come premesso nel primo messaggio, non ho una buona conoscenza di java.
    Tranquillo, questa frase dice tutto ... per meglio precisare, JavaScript non è Java

    Per effettuare un refresh in JavaScript puoi usare location.reload()
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Grazie per la disponibilità e la pazienza, vi auguro una buona giornata.

  8. #8
    Scusate se disturbo nuovamente. Il codice da voi consigliato funziona, ma credo cozzi con l'oggetto DataList. Infatti, dopo averlo caricato nel load, passati i 5 secondi, non scorre verso il basso bensì ricarica direttamente la pagina.

    Vi posto il mio oggetto, magari c'è qualche proprietà che ostacola il codice java.

    <aspataList Id="DTLPLC" runat="server" RepeatDirection="Horizontal" CssClass="DataList" RepeatLayout="Flow">
    <ItemTemplate>
    <%-- PLC --%>
    <div id="DivPLC" runat="server" class="PLC_Div_Tot">
    <%-- INFO --%>
    <div id="DivInfo" runat="server" class="PLC_Info_Div">
    <asp:Label ID="lbContatore" runat="server" CssClass="PLC_Contatore"></asp:Label>
    <asp:Label ID="lbCliente" runat="server" CssClass="PLC_Cliente"></asp:Label>
    <asp:Label ID="lbDesc" runat="server" CssClass="PLC_Descr" style="margin-bottom:0px;"></asp:Label>
    <asp:Label ID="lbDataScad" runat="server" CssClass="PLC_Scad"></asp:Label>
    <asp:Label ID="lbPLC" runat="server" CssClass="PLC_Num"></asp:Label>
    </div><!-- Fine Info -->
    <%-- Img --%>
    <div id="DivImage" runat="server" class="PLC_Img_Div">
    <asp:Image ID="Immagine" runat="server" CssClass="PLC_Img"/>
    </div>
    </div><!-- Fine PLC -->
    </ItemTemplate>
    </aspataList>
    lato vb.net invece

    Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
    Dim dt As DataTable = ApriTab("select campi from Table", TypeApriTAB.DATATABLE)
    DTLPLC.DataSource = dt
    DTLPLC.DataBind()
    End If
    End Sub
    Dove sbaglio?

  9. #9
    Ho capito la problematica. Accade perchè nelle classi css utilizzo lo style float:left;

    Devo capire se c'è un comando che mi permette di accettarlo, altrimenti devo riprogrammare la pagina senza utilizzare il float:left;, ma spero nella prima opzione.

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,684
    Ciao, dovresti postare il codice HTML che risulta dalla tua pagina ASP altrimenti è difficile capire.

    Per postare il codice nel forum devi usare i tag [CODE][/CODE] non il "quote", altrimenti escono fuori faccine e cose che corrompono il codice.

    Stai continuando a confondere Java con JavaScript (vedi il mio link a riguardo, nel precedente post); qui parliamo di JavaScrip, chiaramente è ovvio che tu ti stia riferendo a questo ma ti invito ad usare comunque i termini giusti.

    Per il float normalmente si risolve applicando overflow:auto al relativo elemento genitore. Fai magari qualche prova, se poi non riesci cerchiamo di capire assieme come risolvere ma, ripeto, serve che posti il codice HTML e magari anche il relativo CSS. Se la tua pagina è accessibile pubblicamente online, puoi postare il link per poterci permettere di avere un riscontro immediato.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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 © 2024 vBulletin Solutions, Inc. All rights reserved.