Es de los "acordeones" que más me gustan, por nada obstructivo, por efectos, por delimitar bien la zona que ya ha sido leída y la que queda por leer y porque no es nada complicado, al revés que muchos otros. Podéis ver un ejemplo muy elegante en la sidebar de la págins de ArtViper.
Si picáis en el "click +/-" de esta entrada, veréis mi demo (menos sofisticada, pero efectiva :) ).
Cómo se hace:
.- SCRIPTS:
Colocad, antes del cierre "head", lo siguiente:
<script src='http://.../mootools.js' type='text/javascript'/>
<script language='javascript' src='http://.../reflection.js' type='text/ecmascript'/>
Al final de vuestra plantilla, inmediatamente encima del cierre del body (y no lo coloquéis en ningún otro sitio, o no funcionará este accordion), poned el siguiente script:
<script language='javascript' type='text/javascript'>
window.onload=function(){
$$('#menu a').each(function(el) {
el.addEvent('mouseenter',function(){
myEffect = el.effect('margin-left', {duration: 100,transition: Fx.Transitions.linear, wait: true}).start('0','30');
})
el.addEvent('mouseleave',function(){
myEffect = el.effect('margin-left', {duration: 800,transition: Fx.Transitions.Bounce.easeOut, wait: true}).start('30','0');
})
})
myStretch = document.getElementsByClassName('toggler');
myStretcher = document.getElementsByClassName('accordion');
myStretcher.each(function(el){
el.style.display = '';
});
var ac = new Fx.Accordion(myStretch,myStretcher,
{
onActive: function(tog){
tog.setStyle('color', '#ACDA4E');
tog.setStyle('cursor', 'help');
},
onBackground: function(tog){
tog.setStyle('color', '#141516');
tog.setStyle('background-color', 'transparent');
tog.setStyle('cursor', 'help');
},
alwaysHide: true,
start : 'all-closed',
opacity : true
});
var bod = document.body;
var width = $(bod).getCoordinates();
width = width['width'];
width = (width - 582) / 2;
$('newsletter').setStyle('left',width +"px");
$('newsletter').setStyle('position','absolute');
$('clickme').addEvent('click',function(){
height = $('bg_news').getStyle('height').toInt();
if(height == 0){
$('bg_news').effect('height', { duration: 800, wait:true, transition:Fx.Transitions.Bounce.easeOut }).chain(function(){
$('contents_newsletter').setStyle('display','block');
$('answer').setStyle('display','block');
}).start('0','130');
}else{
$('contents_newsletter').setStyle('display','none');
$('answer').setStyle('display','none');
$('bg_news').effect('height', { duration: 1000, wait:true, transition:Fx.Transitions.Bounce.easeOut }).start('130','0');
}
})
$('form1').addEvent('submit', function(e) {
new Event(e).stop();
var log = $('bg_news').addClass('ajax_loading');
new Ajax('check.php', {
method: 'post',
update: 'answer',
data: this,
evalScripts:true,
onComplete: function() {
log.removeClass('ajax_loading');
}
}).request();
});
$$('.ex').each(function(el){
rel = el.getAttribute('title');
img = new Element('img');
img.src = rel;
el.setAttribute('rev',el.innerHTML);
el.setStyle('background-image','none');
el.setStyle('padding-left','0px');
el.innerHTML = '';
img.setAttribute('alt',el.innerHTML);
img.injectInside(el);
})
}
</script>
Aquí dentro podéis arreglar a vuestro gusto el estilo del togle "activo" e "inactivo": fondo, texto, etc...
.- HTML (casi se me olvida...): en mi demo, sigue esta línea:
<div class='toggler'><span style='padding-left:10px'>Texto que quieres mostrar.</span></div>
<li class='accordion'>Texto que quieres esconder</li>
Creo que no se me olvida nada más...
Pd: Por cierto... ¿alguien más que yo ha notado que la "vista previa" desde la plantilla no funciona nada bien... :( ?
Está bien, aunque si usas imágenes es más conveniente tener el "leer más" via AJAX para no incrementar la carga de la página via peek-a-boo posts, pero si es bueno para tener más entradas "a la vista", en lugar de varias largas bajando el scroll, y más rápido de ver el sumario por así decirlo para el visitante.
ResponderEliminarLa otra ventaja es que así tienes efectos al desplegarlos :D
Pero hay una cuestión y es que estoy pensando que esto también afectaría a las páginas individuales.
Los efectos terminaron de convencerme. Además es muy suave en la transición, a diferencia del Peek-A-Boo (muy, muy brusco). En éste, tampoco terminas de distinguir donde dejaste de leer y donde se despliega el texto que no has leído; en cambio, este acordeoón-togle te facilita así la lectura.
ResponderEliminarAfecta al resto de la página el togle-truncate, por ejemplo, pero éste no: si ves el ejemplo en la sidebar de ArtViper compruebas que no hay "daños colaterales" de ninguna clase para el resto.