Bonjour à tous,
j'utilise le script "mootabs" pour mon site, mais je rencontre un petit problème.
En effet, quand mon texte est trop long dans l'un des onglets, il apparait une scrollbar dans la longueur, c'est pas très sexy. Du coup, j'ai supprimé la ligne " height: this.options.height," et la fantastique, ca marche, la barre de scroll disparait dans Mozilla, problème
, le contenu des tab disparait sur internet explorer ( c t trop beau pour être vrai). Comment pourrais je faire pour faire disparaitre ce scroll sur les différents navigateurs ?
J'ai toujours en height => 666px, alors dès que le contenu dépasse cette taille en hauteur, j'ai le scroll qui s'affiche.
Merci par avance
voici mon code :
Modifié par dreadstock (30 Sep 2010 - 14:52)
j'utilise le script "mootabs" pour mon site, mais je rencontre un petit problème.
En effet, quand mon texte est trop long dans l'un des onglets, il apparait une scrollbar dans la longueur, c'est pas très sexy. Du coup, j'ai supprimé la ligne " height: this.options.height," et la fantastique, ca marche, la barre de scroll disparait dans Mozilla, problème

J'ai toujours en height => 666px, alors dès que le contenu dépasse cette taille en hauteur, j'ai le scroll qui s'affiche.
Merci par avance
voici mon code :
var mootabs = new Class({
initialize: function(element, options) {
this.options = Object.extend({
width: '300px',
height: '200px',
changeTransition: Fx.Transitions.Bounce.easeOut,
duration: 1000,
mouseOverClass: 'active',
activateOnLoad: 'first',
useAjax: false,
ajaxUrl: '',
ajaxOptions: {method:'get'},
ajaxLoadingText: 'Loading...'
}, options || {});
this.el = $(element);
this.elid = element;
this.el.setStyles({
height: this.options.height,
width: this.options.width
});
this.titles = $$('#' + this.elid + ' ul.mootabs_title li');
this.panelHeight = this.el.getSize().size.y - (this.titles[0].getSize().size.y + 4);
this.panels = $$('#' + this.elid + ' .mootabs_panel');
this.panels.setStyle('height', this.panelHeight);
this.titles.each(function(item) {
item.addEvent('click', function(){
item.removeClass(this.options.mouseOverClass);
this.activate(item);
}.bind(this)
);
item.addEvent('mouseover', function() {
if(item != this.activeTitle)
{
item.addClass(this.options.mouseOverClass);
}
}.bind(this));
item.addEvent('mouseout', function() {
if(item != this.activeTitle)
{
item.removeClass(this.options.mouseOverClass);
}
}.bind(this));
}.bind(this));
if(this.options.activateOnLoad != 'none')
{
if(this.options.activateOnLoad == 'first')
{
this.activate(this.titles[0], true);
}
else
{
this.activate(this.options.activateOnLoad, true);
}
}
},
activate: function(tab, skipAnim){
if(! $defined(skipAnim))
{
skipAnim = false;
}
if($type(tab) == 'string')
{
myTab = $$('#' + this.elid + ' ul li').filterByAttribute('title', '=', tab)[0];
tab = myTab;
}
if($type(tab) == 'element')
{
var newTab = tab.getProperty('title');
this.panels.removeClass('active');
this.activePanel = this.panels.filterById(newTab)[0];
this.activePanel.addClass('active');
if(this.options.changeTransition != 'none' && skipAnim==false)
{
this.panels.filterById(newTab).setStyle('height', 0);
var changeEffect = new Fx.Elements(this.panels.filterById(newTab), {duration: this.options.duration, transition: this.options.changeTransition});
changeEffect.start({
'0': {
'height': [0, this.panelHeight]
}
});
}
this.titles.removeClass('active');
tab.addClass('active');
this.activeTitle = tab;
if(this.options.useAjax)
{
this._getContent();
}
}
},
_getContent: function(){
this.activePanel.setHTML(this.options.ajaxLoadingText);
var newOptions = {update: this.activePanel.getProperty('id')};
this.options.ajaxOptions = Object.extend(this.options.ajaxOptions, newOptions || {});
var tabRequest = new Ajax(this.options.ajaxUrl + '?tab=' + this.activeTitle.getProperty('title'), this.options.ajaxOptions);
tabRequest.request();
},
addTab: function(title, label, content){
//the new title
var newTitle = new Element('li', {
'title': title
});
newTitle.appendText(label);
this.titles.include(newTitle);
$$('#' + this.elid + ' ul').adopt(newTitle);
newTitle.addEvent('click', function() {
this.activate(newTitle);
}.bind(this));
newTitle.addEvent('mouseover', function() {
if(newTitle != this.activeTitle)
{
newTitle.addClass(this.options.mouseOverClass);
}
}.bind(this));
newTitle.addEvent('mouseout', function() {
if(newTitle != this.activeTitle)
{
newTitle.removeClass(this.options.mouseOverClass);
}
}.bind(this));
//the new panel
var newPanel = new Element('div', {
'style': {'height': this.options.panelHeight},
'id': title,
'class': 'mootabs_panel'
});
if(!this.options.useAjax)
{
newPanel.setHTML(content);
}
this.panels.include(newPanel);
this.el.adopt(newPanel);
},
removeTab: function(title){
if(this.activeTitle.title == title)
{
this.activate(this.titles[0]);
}
$$('#' + this.elid + ' ul li').filterByAttribute('title', '=', title)[0].remove();
$$('#' + this.elid + ' .mootabs_panel').filterById(title)[0].remove();
},
next: function(){
var nextTab = this.activeTitle.getNext();
if(!nextTab) {
nextTab = this.titles[0];
}
this.activate(nextTab);
},
previous: function(){
var previousTab = this.activeTitle.getPrevious();
if(!previousTab) {
previousTab = this.titles[this.titles.length - 1];
}
this.activate(previousTab);
}
});

Modifié par dreadstock (30 Sep 2010 - 14:52)