Salve a tutti,
premetto che non so quasi niente di javascript, quindi vi chiedo un aiuto da profano.
Sto cercando di adattare un codice che ho trovato per eseguire lo scrolling di un <div> quando il mouse passa su un'immagine.
Il problema è che il <div> da scrollare, anzi i <div>, sono generati automaticamente all'interno di un DataList di ASP.NET, quindi se gli assegno un "id" questo non sarà più univoco e le funzioni javascript non funzionano più.
Spulciando in giro ho trovato il modo di sostituire il "getElementById(id)" con il "getElementsByTagName("div")" ma con scarso successo.
Vi posto il mio codice:
HTML:
javascript:codice:<asp:DataList ID="DataList1" runat="server"> <ItemTemplate> <div> <asp:Image ID="imgFrecciaSu" runat="server" ImageUrl="~/Immagini/freccia_su.png" onmouseout="stopMeUpDown()" onmouseover="scrollUp(this)" style="cursor: hand" /> <div> <asp:DataList ID="dtlOpere" runat="server" DataKeyField="IDOpera" DataSourceID="Tab_ElencoOpere"> <ItemTemplate> [... elenco immagini ...] </ItemTemplate> </asp:DataList> </div> <asp:Image ID="imgFrecciaGiu" runat="server" ImageUrl="~/Immagini/freccia_giu.png" onmouseout="stopMeUpDown()" onmouseover="scrollDown(this)" style="cursor: hand" /> </div> </ItemTemplate> </asp:DataList>
Ricevo un errore che dice: 'undefined' è nullo o non è un oggetto!codice:// SCROLL // scrollStepTopDown = 1 timerUp = "" timerDown = "" function scrollUp(ctl) { var div = ctl.parent; var targetElement = div.getElementsByTagName("div")[0]; // clearTimeout(timerUp) // targetElement.scrollTop -= scrollStepTopDown // timerUp = setTimeout(function() { scrollUp(targetElement); }, 10); } function scrollDown(ctl) { var div = ctl.parent; var targetElement = div.getElementsByTagName("div")[0]; clearTimeout(timerDown) targetElement.scrollTop += scrollStepTopDown timerDown = setTimeout(function() { scrollDown(targetElement); }, 10); } function stopMeUpDown() { clearTimeout(timerUp) clearTimeout(timerDown) }
GRAZIE

Rispondi quotando