Bonjour,
je ne sais pas si mon post est à la bonne place et si c'est pas le cas j'en suis désolé.
Dernièrement j'ai trouver sur le net une méthode pour placer une zone flottante, pour moi un menu, à gauche de mon site, qui suis le scrolling de la page.
Il a un effet ressort (c'est à dire qu'il n'est pas figé avec le scrolling de la page) que j'aimerais réduire, voire supprimer mais je ne sais pas comment faire. Mon niveau de javascript est très faible et j'aurais bien besoin de votre aide pour modifier ces paramètres. Merci d'avance.
aperçu du rendu :
cliquez ici
Je vous mets ci-dessous le code javascript :
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; // On divise par 20
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('DIV_MOVE');
//-- Lance inspection si existe
if( O_DivScroll.Obj)
IdTimer_2 = setInterval('DIV_CheckScroll()',100);
}
//========================================
Add_Event( window, 'load', DIV_InitScroll);
//-- EOF --
Merci pour votre aide.
Beuze
Qui fait le malin va pas loin !