CSS: Display:none e jQuery. Un connubio utile
Tue, 2007-05-22 14:42 — psicomante
Per chi non conoscesse bene Javascript e <strike>JQuery</strike> jQuery (segnalato da <em>ehehehe...</em>), mi è venuta in mente pochi giorni fa un metodo stra-conosciuto sicuramente ma di cui non ho mai sentito parlare (ma la mia esperienza nel campo è scarsissima, quindi non fa testo). Associare nel CSS la proprietà <code>display:none</code> permette di evitare la visualizzazione di un <em>div nascosto</em> e da far apparire come slide (un esempio evidente è il filo presente su questo blog, che fa apparire delle informazioni aggiuntive).
Questo codice javascript inserito <strike>nel HEAD</strike> in un file separato, permette di animare il div con classe <em>shelfwrap</em>.
<code>if (Drupal.jsEnabled) {
$(document).ready(Drupal.shelfwrapAuto);
}
Drupal.shelfwrapAuto = function() {
$('#pull').click(function() {
$('#shelfwrap').slideToggle('slow');
return false;
});
};</code>
dove pull è il div contenente il link per srotolarlo.
Come giustamente segnala Mavì, mi sono dimenticato di aggiungere la modifica per il page.tpl.php:
<code><?php
unset($js['core']['misc/jquery.js']);
$js = drupal_add_js(path_to_theme().'/script.js', NULL, 'header');
print drupal_get_js('header', $js);
?></code>
da inserire prima della stampa degli stili e dove script.js è il vostro script dove avete inserito il codice javascript di sopra.
![[title-raw] [title-raw]](http://blog.psicomante.net/sites/psicomante.net/files/imagecache/view/imagesblog/drupalcamp torino 2010: il sito è online-shot_dcamp_torino.jpg)


Comments
Si, si... il mio problema
Si, si... il mio problema era un altro (anche se non ho capito qual :P).. semplicemente suggerivo di inserirla nel post anche per gli altri, altrimenti non funziona nulla ;)
Hai anche ragione
Hai anche ragione :D
Gliel'ho fatta!!! Bisogna
Gliel'ho fatta!!! :D
Bisogna mettere anche
<?php
unset($js['core']['misc/jquery.js']);
$js = drupal_add_js(path_to_theme().'/script.js', NULL, 'header');
print drupal_get_js('header', $js);
?>
Nell'header della pagina in <em>page.tpl.php</em>, dove ovviamente <em>script.js</em> è il nome del file in cui avete inserito il codice precedente.
Infatti è da ieri che ti
Infatti è da ieri che ti linkavo quella porzione di codice del mio tema mica per niente :D
Ti consiglio di impostare
Ti consiglio di impostare per il "filo" una proprietà dello stile, in mdo che mostri una mano come nei link:
<code>style="cursor:pointer;"</code>
Penso sia più utile, no?
Grazie per l'idea!
Grazie per l'idea! Indubbiamente molto più "user-friendly".
Post new comment