Lien <a href et javascript

Signaler
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015
-
Salut !

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 :

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 --


Merci

----------
OS : Windows XP SP3 et Vista 32
Platforme : VB 6.0 + SP6
Ok VB6.0 c'est pas net !