Scroll d'une zone de texte avec la mollette sous firefox

kimimaroo77 Messages postés 4 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 26 juillet 2007 - 26 juil. 2007 à 16:36
kimimaroo77 Messages postés 4 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 26 juillet 2007 - 26 juil. 2007 à 18:46
Bonjour,

j'utilise un script pour créer des scrollbar personnalisés.
le script utilisé est : http://www.javascriptfr.com/codes/BOITE-TEXTE-TYPE-SCROLLBAR-AVEC-SCROLL-VERTICAL_38038.aspx

sur ce script la mollette n'est géré que sur Internet Explorer, j'ai donc suivit ce petit tuto qui explique comment gérer les évenements de la mollette sur firefox :
http://adomas.org/javascript-mouse-wheel/

mais c'est sans succès la mollette refuse toujours de fonctionner sur firefox! si quelqu'un a une idée? merci d'avance

parti modifié du code :

<hr size="2" width="100%" />
box[id].wheel = function(id) {

if (event.wheelDelta/120 > 0)
{
box[id].descendre(id,false);
box[id].descendre(id,false);
box[id].descendre(id,false);
with( bx.b_B_I)
{

}
}
else if (event.wheelDelta/120 < 0)
{
box[id].monter(id,false);
box[id].monter(id,false);
box[id].monter(id,false);
with( bx.b_H_I)
{
}
}

else if (-event.detail/3 < 0)
{
box[id].descendre(id,false);
box[id].descendre(id,false);
box[id].descendre(id,false);
}
else if (-event.detail/3 > 0)
{
box[id].monter(id,false);
box[id].monter(id,false);
box[id].monter(id,false);
}

}

//** Chargement des evenements de la sourie **//

box[id].load = function() {

el = box[id].obj;
el.b_H.onmousedown = function(){box[id].descendre(id)};
el.b_B.onmousedown = function(){box[id].monter(id)};
el.b_H.onmouseup = function(){clearTimeout(box[id].timer)};
el.b_B.onmouseup = function(){clearTimeout(box[id].timer)};

if (ie)
{window.onmousewheel document.onmousewheel function(){box[id].wheel(id)};
}

else
{
if (window.addEventListener)
{
window.addEventListener('DOMMouseScroll', function(){box[id].wheel(id)}, false);
}
}
}

box[id].load();

// Remplace box[id] par l'objet créer
return box[id];

} //**fin**//

3 réponses

pysco68 Messages postés 681 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 21 août 2014 8
26 juil. 2007 à 18:24
pas d'idée précise, jette vois un coup d'oeil à l'implémentation du support de molette dans mootools: http://demos.mootools.net/Mousewheel

<hr size="2" width="100%" />Developpement Web Yannic GraphiX | Mon CMS yArt et sa démo
<hr size="2" width="10" />
0
kimimaroo77 Messages postés 4 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 26 juillet 2007
26 juil. 2007 à 18:41
merci beaucoup, j'avais déjà essayé avec mootools mais c'était sans succès, enfin par chance ça marche maintenant!
donc si ça peut aider quelqu'un, voici ce que j'ai modifié:

<hr size="2" width="100%" />//**    Traitement curseur et scroll de la molette spécifique a IE et ff **//
       
    with(bx.b_B)
    {
        style.cursor = "hand";
    }
    with(bx.b_H)
    {
        style.cursor = "hand";
    }
       
       
    box[id].wheel = function(id) {
                    var up $('up'), down $('down'), log;
 
        document.addEvent('mousewheel', function(event) {
            event = new Event(event);
 
            /* Mousewheel UP */
            if (event.wheel > 0)
            {
                box[id].descendre(id,false);
                box[id].descendre(id,false);
                box[id].descendre(id,false);           
            }
            /* Mousewheel DOWN*/
            else if (event.wheel < 0) {
                box[id].monter(id,false);
                box[id].monter(id,false);
                box[id].monter(id,false);           
            }
        });
       
    }
   

//** Chargement des evenements de la sourie **//
   
    box[id].load = function() {

        el                    = box[id].obj;
        el.b_H.onmousedown    = function(){box[id].descendre(id)};
        el.b_B.onmousedown    = function(){box[id].monter(id)};
        el.b_H.onmouseup    = function(){clearTimeout(box[id].timer)};
        el.b_B.onmouseup    = function(){clearTimeout(box[id].timer)};
       
        window.addEvent('domready', function(){box[id].wheel(id)});
    }
   
    box[id].load();
   
    // Remplace box[id] par l'objet créer
    return box[id];   

   
} //**fin**//
0
kimimaroo77 Messages postés 4 Date d'inscription jeudi 16 février 2006 Statut Membre Dernière intervention 26 juillet 2007
26 juil. 2007 à 18:46
j'ai oublié de préciser que les fonctions box[id].monter et box[id].descendre s'inverse avec mootools, et de plus pour l'utiliser il faut modifier une autre partie du code:

<hr size="2" width="100%" />    //Image du haut
    with(bx.b_H_I)   
    {
        style.background = "url('up.png')";
        style.filter     = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='up.png')";
        style.width         = "47px";
        style.height     = "114px";
        id                 = "up";
    }
        var i_H_lg parseInt( bx.b_H_I.offsetWidth),i_H_ht parseInt( bx.b_H_I.offsetHeight);
   
    //Image du bas
    with(bx.b_B_I)   
    {
        style.background = "url('down.png')";
        style.filter     = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='down.png')";
        style.width          = "47px";
        style.height     = "114px";
        id                 = "down";
    }
0
Rejoignez-nous