In questo articolo cercheremo di spiegare come ottenere lo stesso risultato di questa nostra DEMO.
Partiamo esaminando la struttura della pagina che prevede delle sezioni visibili all'apertura (nell'immagine sottostante circondate da un bordo rosso), altre nascoste (circondate da un bordo blu) che si visualizzano solo se richiamate al click, nascondendo a loro volta le sezioni in rosso con l'effetto vertical sliding, ed eventuali elementi sempre visibili (circondati da un bordo verde):
- Sezioni visibili all'apertura della pagina (in rosso)
Ogni sezione è costituita, nel nostro esempio, da un Oggetto Testo e contiene un link che apre la relativa sezione nascosta. Nell'Oggetto Testo corrispondente alla prima sezione abilitare il codice HTML ed inserire questo codice:
<a class="MS_ButtonLink" href="#sezione1">APRI</a>
Nell'Oggetto Testo corrispondente alla seconda sezione il codice varierà in questo modo:
<a class="MS_ButtonLink" href="#sezione2">APRI</a>
E così via per le altre due sezioni. - Sezioni nascoste (in blu)
Inserire negli Oggetti Testo che verranno visualizzati solo al click, il codice per il pulsante di chiusura, sempre abilitando il codice HTML:
<span class="MS_Close">CHIUDI</span>
Ora ci spostiamo in Proprietà Pagina, Esperto, Prima della chiusura del tag HEAD ed inseriamo questo semplice CSS, completamente personalizzabile, per la formattazione dei pulsanti di apertura e di chiusura:
<style> .MS_ButtonLink, .MS_Close { background-color: #ff6600; color: #fff; text-decoration: none; padding: 4px 8px; cursor: pointer; } </style>Sempre nella stessa sezione, a seguire, inseriamo questo script che permette di gestire la visibilità e l'animazione degli oggetti:
<script> /* ========================================================================================= Author's custom code: http://quellidelcucuzzolo.blogspot.it - Please do not remove credit ========================================================================================= */ $(document).ready(function() { //classi ai div $("#imGroup_1 > div").each(function(index) { if ($(this).hasClass("imHGroup") || $(this).hasClass("imEGroup")) $(this).addClass("row" + (index + 1)); else { $(this).wrap("<div class='row" + (index + 1) + "' style='width: 100%;'></div>"); } }) //PARTE DA PERSONALIZZARE //sezioni visibili all'apertura della pagina $(".row1, .row2").wrapAll("<div class='MScontent'></div>"); //sezioni nascoste $(".row3").addClass("sezione1"); $(".row4").addClass("sezione2"); $(".row5").addClass("sezione3"); $(".row6").addClass("sezione4"); $(".MScontent > div").css("float", "left"); $("div[class*='sezione']").hide(); //animazione $(".MS_ButtonLink").click(function() { var id = $(this).attr("href").slice(1); $("html, body").animate({ scrollTop: 100 }, 500); $("div.MScontent").slideUp("slow"); $("." + id).slideDown("slow"); return false; }); $(".MS_Close").click(function() { $("div[class*='sezione']").slideUp("slow"); $("div.MScontent").slideDown("slow"); }); }); </script>
A questo punto abbiamo riprodotto fedelmente la nostra demo. Per poter capire il funzionamento e fare eventuali modifiche, entriamo nel merito del codice JavaScript utilizzato.
La prima parte dello script, con commento //classi ai div si occupa di assegnare, ai div che il programma genera per circondare gli oggetti che inseriamo sulle righe nella griglia della pagina, una classe row con un numero crescente come suffisso, numero che corrisponde ai numeri delle righe presenti in Creazione della Pagina.
Se però nella griglia fossero presenti oggetti che occupano più di una riga, la numerazione delle classi row cambierebbe in questo modo:
Questa parte del codice è utilizzata anche nello script per ottenere le strisce orizzontali descritto in questo articolo quindi, chi ne facesse già uso, deve ometterla.
La parte centrale del codice, con commento //PARTE DA PERSONALIZZARE deve essere modificata in funzione del numero e della posizione degli oggetti a cui applicare l'effetto.
Nella parte di codice che riguarda le sezioni che devono risultare visibili all'apertura della pagina, indicare le classi row in cui sono collocate:
$(".row1, .row2").wrapAll("<div class='MScontent'></div>");
Identifichiamo quindi le classi row in cui sono collocati gli oggetti nascosti ed associamoli alla corrispondente sezione visibile indicando il valore dell'attributo href (privo del cancelletto) che abbiamo precedentemente scritto nel relativo pulsante APRI:
$(".row3").addClass("sezione1"); $(".row4").addClass("sezione2"); $(".row5").addClass("sezione3"); $(".row6").addClass("sezione4");
L'ultima parte del codice si occupa dell'animazione: il valore scrollTop:100 indica la posizione della barra di scroll al termine dell'animazione e deve essere adeguato all'altezza dell'header o comunque regolato a piacere.
Nota: il valore dell'attributo href del pulsante APRI deve essere costituito dal prefisso obbligatorio "#sezione" seguito da numeri o lettere o parole che identificano in modo univoco la sezione.
Ottima spiegazione....
RispondiEliminaGrazie
Mirko
Grazie a te per averci spronato a finire l'articolo :)
Eliminasecondo me avete una dote unica... scrivete codice semplice da comprendere anche per i neofiti...
RispondiEliminaGrazie Antonio, noi ci speriamo sempre di scrivere in modo comprensibile :)
EliminaCondivido la vostra seccatura su chi osa approfittare del vostro lavoro per trarne un vantaggio economico personale immeritato. Siete eccezionali!
RispondiEliminaGrazie anche a te Gabriele per il tuo commento :)
EliminaDi nuovo io, ho provato a seguire passo passo la vostra guida, ma mi succede che il testo e i link non siano responsive....dove sbaglio...?
RispondiEliminahttp://www.mirboprova.altervista.org/cucuzzolo/
secondo me il problema è generato dal copia/incolla diretto in website...prova a passare il testo prima in notepad...
RispondiEliminascritto tutto il testo a mano, senza copia incolla....eppure la tua prova funzia e la mia no...
RispondiEliminaCiao Mirko, guarda il sorgente della tua pagina: ci sono dei tag <pre> che ovviamente provocano il comportamento del testo da te segnalato.
Eliminahttp://www.w3schools.com/tags/tag_pre.asp
Prova a rifare gli oggetti testo da capo, senza copia/incollare il testo.
scoperto l'errore....non era il testo con copia/incolla, ma avevo inserito la cella orizzontale (quelle che dovrebbero essere nascoste) e poi copia/incolla della cella per le altre 3 sotto....infatti l'ultima cella ora con testo inserito con copia/incolla funzia bene lo stesso....grazie mille di nuovo...
RispondiEliminaBuongiorno a tutti, ho creato il sito su modello Tamarillo (MAeSI edition) e l'effetto Vertical Sliding funziona benissimo su pagine aggiunte ma nella Home no. In pratica non si nascondono le righe. Credo vada in conflitto con qualche altro codice. Dopo vari tentativi, chiedo un parere.
RispondiEliminaGrazie!
Ciao Francesco,
Eliminanella home del template Tamarillo è presente il codice per il layout a strisce, quindi, come abbiamo scritto nell'articolo, devi eliminare la prima parte dello script, cioè il codice che segue il commento //classi ai div.
Alla fine, prova su prova, ora funziona e anche benissimo... però, ho trovato un'altro intoppo: la galleria Masonry! Purtroppo quando appare, dalla riga nascosta, le foto si compattano e si vede solo l'ultima, mantenendo liberi gli spazi delle foto che non appaiono.
EliminaMi sarà di grande aiuto una soluzione per masonry o eventualmente l'indicazione di altre gallerie simili.
Grazie e buona serata!!
Ciao Francesco,
Eliminanoi non abbiamo acquistato l'oggetto Masonry quindi non possiamo aiutarti molto. In generale il problema di una galleria come quella è che la disposizione delle immagini è generata attraverso codice javascript al caricamento della pagina e, se le immagini non sono visibili perché in display none, può non essere corretta la lettura delle dimensioni delle stesse. Dovresti leggere nella documentazione ufficiale se è possibile richiamare nuovamente la funzione al click sul pulsante che rende visibile la gallery.
Salve stavo vedendo ora il vostro articolo e volevo chiarimenti sinceramente c'è qualcosa che mi sfugge ho provato ma le celle inserine non sono di testo come si vede dalla figura ma html ?
RispondiEliminapoi ho provato ma non riesco a creare i link invisibili???
dove trovo spiegazioni scusate io non sono molto bravo in linguaggio quindi non riesco a capire bene i vari passaggi che fai con website grazie
Ciao Renato,
Eliminal'articolo spiega passo passo come riprodurre la nostra DEMO realizzata con oggetti testo.
Non riusciamo a capire quali difficoltà stai incontrando.
Se vuoi, posta il link alla tua prova online, così da capire a che punto sei arrivato.
prima di tutto grazie x la vs disponibilita secondo considera che non sono molto esperto comunque ti metto in allegato il link per vedere http://renatik62.altervista.org/sitoprova/index.html quello che ho combinato quello che tentavo di dire e che metto oggetti testo non riesco a mettere la parte html che ho solo in oggetti <>
RispondiEliminapoi non riesco a capire come colleghi i vari oggetti
Grazie ancora
Renato
Ciao,
Eliminaabbiamo guardato la tua pagina e ci sono un po' di cose da sistemare.
Per prima cosa in "Stile righe" hai unito tutte le righe con il lucchetto. Devi toglierlo e lasciare le righe indipendenti una dall'altra.
Poi togli tutti gli oggetti Codice HTML che hai inserito tra un oggetto testo e l'altro: il codice in essi presenti deve essere copiato (una volta sola) in Proprietà Pagina, Esperto, Prima di chiusura del tag HEAD, come abbiamo scritto nell'articolo.
Ci sono ancora altri errori, ma andiamo per gradi, incomincia a sistemare questi.
Grazie ancora per il tempo che deticate sono riuscito a capire e localmente funziona in rete invece ho dovuto salvare index in php e non html giusto ?
RispondiEliminadi quali altri errori parlavi i link è ancora valido
http://renatik62.altervista.org/sitoprova/index.php fammi sapere
GRAZIE
Prego Renato.
EliminaBene, sembra che funzioni tutto, prima avevi collegato più schede allo stesso link ma adesso hai sistemato.
Non serve cambiare l'estensione in .php alla index, in Rete hai anche la pagina .html perfettamente funzionante.
Ciao
Grazie ancora ora voglio fare le prove con il tuo link
Eliminaphp-elenco-file-dinamico-ordinabile.html e vedere se mi funziona anche questo è gestito da website ??
Grazie ancora
La demo non è stata fatta con WebSite X5 ma i codici possono essere integrati con facilità.
EliminaGrazie per quello che fate...Siete il 6°passo di websiteX5 o X6😀
RispondiEliminaBuon tutto a voi. Scrivo perché non sono esperto di codici, ho un problema con lo sliding panels (che ho copiato e incollato): dopo aver aggiunto un nuovo rigo con tabella ottengo questo risultato https://www.nigretti.it/prova/amare-derive-poesie.html
RispondiEliminaIn passato avevo aggiunto altri row al codice di partenza e funziona benissimo http://www.nigretti.it/amare-derive-poesie.html
Spero in un vostro gentile aiuto
Grazie
Giuseppe
Ciao Giuseppe,
Eliminahai unito le prime tre righe delle poesie in una sola.
Intanto separale, poi vediamo se c'è altro da sistemare.
Grazie! sei stato gentilmente veloce nel rispondere...
EliminaHo separato le tre righe (si erano unite da sole!?) ho sistemato il codice ed ora funziona tutto!
www.nigretti.it/prova/amare-derive-poesie.html
se hai qualche altra dritta te ne sarei molto grato
grazie ancora
Giuseppe
Buongiorno, ho trasferito il sito da Website 13 alla nuova versione 17 e tutti i Vertical Sliding della sezione poetry non funzionano più!!! come potete vedere https://www.nigretti.it/prova/poetry.html
RispondiEliminada che cosa dipende?
vi ringrazio
Giuseppe
Ciao,
Eliminanella nuova versione hanno cambiato un po' la struttura quindi bisogna modificare lo script. Non abbiamo più molto tempo da dedicare al blog e di conseguenza a WebSite X5. Appena possibile daremo un'occhiata alla nuova struttura.
ok, spero il prima possibile
RispondiEliminati ringrazio
Ciao