ma è all'interno della funzione
ma è all'interno della funzione
lo hai messo dentro la funzione addHoverListenersWithDelay, alla fine, invece ti ho indicato di inserirlo proprio dentro il listener dell'evento mouseenter.
Se indenti bene tutto lo script puoi capire meglio dove sta la chiusura di quelle funzioni. Per indentare il codice puoi utilizzare "Format JavaScript" che trovi nel menu a discesa in alto a destra dell'editor di CodePen (il pulsantino "˅").
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
trigger.addEventListener("mouseenter", function () {
prevTrigger = { mask, line };
var scrollPosition = window.scrollY || window.pageYOffset;
if (prevTrigger && prevTrigger != trigger) {
// Se c'è un trigger precedente, applica addclassout
addclassout(prevTrigger);
}
if (scrollPosition < threshold && sonotriggerato === false) {
clearTimeout(scrollTimeout);
scrollTimeout = setTimeout(function () {
addclassin({ mask, line });
sonotriggerato = true;
}, delay);
} else {
addclassin({ mask, line });
}
});
in questo modo intendi?
se si il problema persiste ancora
Dai, mi prendi in giro?Originariamente inviata da KillerWorm
Perché l'hai messa all'inizio della funzione?
Dentro mouseenter, dopo aver eseguito il tutto, significa che devi metterla dopo aver eseguito il tutto dentro mouseenter. Cosa c'è di difficile da capire?
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
a scusami se non ho capito male intendi alla fine della funione?(esempio sotto)
se ancora non ho capito mi scuso sono alle prime armi in Javascript non ho intenzione di prenderti in giro se intendi di inserirlo nel listners non so come si faccia a livello di sintassi se mi puoi spiegare te ne sono grato
trigger.addEventListener("mouseenter", function () {
var scrollPosition = window.scrollY || window.pageYOffset;
if (prevTrigger && prevTrigger != trigger) {
// Se c'è un trigger precedente, applica addclassout
addclassout(prevTrigger);
}
if (scrollPosition < threshold && sonotriggerato === false) {
clearTimeout(scrollTimeout);
scrollTimeout = setTimeout(function () {
addclassin({ mask, line });
sonotriggerato = true;
}, delay);
} else {
addclassin({ mask, line });
}
prevTrigger = { mask, line };
});
Nessun problema. Sì, puoi inserirla alla fine di quella funzione.
Hai verificato se così funziona?
Si tratta giusto di capire la logica. Quella variabile (prevTrigger) va aggiornata dopo (e solo dopo) averla utilizzata come confronto nella condizione dentro il "mouseenter":
Capisci bene che se tu la aggiorni prima, mettendola all'inizio della funzione (cioè prima di quella condizione), farà riferimento al trigger corrente, per cui quella condizione sarà resa vana perché non verrebbe mai verificata.codice:if (prevTrigger && prevTrigger != trigger) { ... }
Per tale motivo ti ho indicato di inserirla dentro mouseenter dopo aver eseguito il tutto, in particolare dopo quella condizione in cui quella variabile deve avere il valore del trigger precedente, non ancora aggiornato.
Spero ti risulti chiaro questo concetto.
Fai sapere.
PS: occhio, usa gli appositi tag [CODE] per postare in modo corretto il codice sul forum (vedi regolamento di sezione).
Installa Forum HTML.it Toolset per una fruizione ottimale del Forum
celò fatta finalmente ho capitograzie mille par la pazienza e l'aiuto starò anche più attento la prossima volta riguardo i post sul forum.
Grazie ancora di tutto