IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Lien <a href et javascript


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 31
    Points
    31
    Par défaut Lien <a href et javascript
    Bonjour à tous !

    Voilà, j'ai un petit soucis avec un code récupéré en javascript qui fonctionne très bien, mais ne prends pas en compte les liens hypertextes de ma div "colleft".
    Lorsque je me positionne sur mon lien, je ne peux pas cliquer...
    Pouvez-vous m'aider svp ?
    Voici mon code et merci d'avance :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    function Add_Event( obj_, event_, func_, mode_){
      if( obj_.addEventListener)
        obj_.addEventListener( event_, func_, mode_? mode_:false);
      else
        obj_.attachEvent( 'on'+event_, func_);
    }
    //----------------------
    function GetScrollPage(){
      var Left;
      var Top;
      var DocRef;
     
      if( window.innerWidth){
        with( window){
          Left   = pageXOffset;
          Top    = pageYOffset;
        }
      }
      else{ // Cas Explorer a part
        if( document.documentElement && document.documentElement.clientWidth)
          DocRef = document.documentElement;
        else
          DocRef = document.body;
     
        with( DocRef){
          Left   = scrollLeft;
          Top    = scrollTop;
        }
      }
      return({top:Top, left:Left});
    }
    //---------------------------
    function ObjGetPosition(obj_){
      var PosX = 0;
      var PosY = 0;
      //-- suivant type en parametre
      if( typeof(obj_)=='object')
        var Obj  = obj_;
      else
        var Obj  = document.getElementById( obj_);
      //-- Si l'objet existe
      if( Obj){
        //-- Recup. Position Objet
        PosX = Obj.offsetLeft;
        PosY = Obj.offsetTop;
        //-- Si propriete existe
        if( Obj.offsetParent){
          //-- Tant qu'un parent existe
          while( Obj = Obj.offsetParent){
            if( Obj.offsetParent){ // on ne prend pas le BODY
              //-- Ajout position Parent
              PosX += Obj.offsetLeft;
              PosY += Obj.offsetTop;
            }
          }
        }
      }
      //-- Retour des positions
      return({left:PosX, top:PosY});
    }
    //-------------------------------------
    // MENU FLOTTANT //////////////////////
    //-------------------------------------
    var IdTimer_1;
    var IdTimer_2;
    var O_DivScroll;
    var Rapport = 1.0/20.0;  
    var Mini = 2* Rapport;
    //-----------------------
    function DIV_Scroll( id_){
      var Obj = document.getElementById( id_);
      this.Obj = Obj;
      if( Obj){
        Obj.style.position = "absolute"; // IMPERATIF
        //-- Recup position de depart
        var Pos   = ObjGetPosition( id_);
        this.PosX = Pos.left;
        this.PosY = Pos.top;
        this.DebX = this.PosX;
        this.DebY = this.PosY;
        this.NewX = 0;
        this.NewY = 0;
        this.Move = DIV_Deplace;
      }
    }
    //---------------------------
    function DIV_Deplace( x_, y_){
      if( arguments[0] != null){
        this.PosX = x_;
        this.Obj.style.left = parseInt(x_) +"px";
      }
      if( arguments[1] != null){
        this.PosY = y_;
        this.Obj.style.top  = parseInt(y_) +"px";
      }
    }
    //---------------------------
    function DIV_Replace( x_, y_){
      //-- Calcul Delta deplacement
      var Delta_X = (x_ -O_DivScroll.PosX) *Rapport;
      var Delta_Y = (y_ -O_DivScroll.PosY) *Rapport;
      //-- Test si fin deplacement
      if((( Delta_Y < Mini)&&( Delta_Y > -Mini))&&
         (( Delta_X < Mini)&&( Delta_X > -Mini))){
        clearInterval( IdTimer_1);
        O_DivScroll.Move( x_, y_);
      }
      else{
        O_DivScroll.Move( O_DivScroll.PosX +Delta_X, O_DivScroll.PosY +Delta_Y);
      }
    }
    //------------------------
    function DIV_CheckScroll(){
      var Scroll  = GetScrollPage();
      //-- New position  du menu
      O_DivScroll.NewX = Scroll.left +O_DivScroll.DebX;
      O_DivScroll.NewY = Scroll.top  +O_DivScroll.DebY;
      //-- Si pas la bonne Position
      if(( O_DivScroll.PosY != O_DivScroll.NewY)||( O_DivScroll.PosX != O_DivScroll.NewX)){
        //-- Clear l'encours
        clearInterval( IdTimer_1);
        IdTimer_1 = setInterval("DIV_Replace(" + O_DivScroll.NewX +"," + O_DivScroll.NewY +")", 10);
      }
      return( true);
    }
    //-----------------------
    function DIV_InitScroll(){
      //-- Recup position Objet
      O_DivScroll  = new DIV_Scroll('colleft');
      //-- Lance inspection si existe
      if( O_DivScroll.Obj)
        IdTimer_2 = setInterval('DIV_CheckScroll()',100);
    }
    //========================================
    Add_Event( window, 'load', DIV_InitScroll);
    //-- EOF --

  2. #2
    Membre éclairé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411
    Points : 735
    Points
    735
    Par défaut
    Ton script et les liens dans une éventuelle div avec id = colleft fonctionnent.

    http://jsfiddle.net/CKnp6/

    Peut-être peux-tu éclairer un peu mieux ton problème avec le html associé.
    Je suis fervent utilisateur de PHP et de jQuery.
    Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web de développeur web dans le Val d'Oise mais aussi plusieurs projets personnels.
    Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, une extension de navigateur pour envoyer l'URL de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc…

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Merci pour ton aide.

    Voici la page :

    Css :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #colleft {float:right; right:10px; top:65px; padding:10px 10px 0 10px; width:200px; z-index :-1000; text-align:center; border:1px solid #FFFFFF; background:url('../images/trans50.png'); overflow:hidden;}
    #colleft #hidePanel  {height:24px; text-align:center; padding:5px 0 0 0;}
    .ContenuPub {background:url('../images/Publicite.png'); height:400px; width:200px;}
    #showPanel {position:inherit; z-index:2; left:0; float:right; padding:40px 2px 0 0; display:none; width:0px; height:100px; cursor:pointer;}
    #showPanel span {display:block; height:30px; padding:20px 0 10px 10px; width:20px; border:1px solid #FFFFFF; background:url('../images/trans50.png');}
    html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div id="colleft"><div id="panel">
    <div class="ContenuPub"></div>
    <div id="hidePanel"><a href="#">Cacher la publicité »</a></div></div></div><div id="showPanel"><span>«</span></div>

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Désolé. J'ai trouvé le problème.

    Dans mon css, c'est mon z-index :-1000; qui faisait cette erreur.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lien hypertext sur une alert javascript
    Par mopao_jlo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/05/2007, 20h34
  2. Lien modifiant contenu page web - Javascript
    Par annekeuss dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/03/2007, 18h10
  3. Mise à jour href en javascript
    Par bashou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 22/03/2007, 12h35
  4. Lien href et javascript
    Par Flashball dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 05/10/2006, 18h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo