Bonjour,

Tout est dans le titre Smiley cligne

Je cherche un moyen en CSS d'avoir une image qui se déplace en même temps de la scrollbar. C'est à dire qu'elle soit toujours visible quand on monte et descend la page.

De plus lui attribuer un lien mais ça encore je pense m'en sortir.

Voilà si quelqu'un a une idée...
En attendant je continue à chercher...

F.
Bonjour,

Sur ce site, il y a le menu de gauche qui reste toujours visible, même si tu descend avec la scrollbar.
Tu pourrais t'en inspirer ?
Modifié par carobee (23 Mar 2006 - 17:22)
bonjour

Merci de vos réponses

Pour le premier lien c'est bien cela mais concrêtement je fais quoi

Car je suis allé dans le code mais tout est en fichier externe et n'ai pas tout compris dans tout ça

Merci

F. .
Bonjour fuerchan,

Tiens, je t'ai dégrossi le truc Smiley smile

css


html, body{
    height:100%;
    width:100%;
    overflow:hidden;
}
body{
    margin: 0px;
    padding: 0px;
}
#global{
    background: red;
    position: relative;
    height: 100%;
    width: 100%;
    overflow: auto;
}
#centre{
    position: relative;
    margin:0 195px 0 130px;
    background: yellow;
    height: 100%;
}
#gauche{
    position: absolute;
    top: 35px;
    left: 20px;
    width: 210px;
    height: 300px;
    background: pink;
}
#droite{
    position: absolute;
    top: 54px;
    left: 100%;
    margin-left: -30px;
    width: 205px;
    height: 500px;
    background: blueviolet;


html


<div id="global"> 
	<div id="centre">
		<div id="droite"></div>
	</div>
</div>
	<div id="gauche">
</div>


Dis moi si c'est ce que tu voulais ?
Bonjour,

Désolé pour ce gros contre temps... Mais je suis toujours là... Ouf !

Bon alors après mille et un tests, pour la plus part concluant mais pas pour ce que je veux... En tout cas pas dans ma configuration actuelle de site.

Pour blue : Merci de ce bout de code il reflète ce que je cherche mais cela me fait trop changer ma mise en page actuelle... Mais je le garde quand même car il répond à une de mes queqtions futur (enfin plus maintenant...) Smiley cligne . Super encore merci Smiley biggrin

Donc pour mon histoire d'image j'ai pu le résoudre alors je vais tenter de résumer tout cela le plus clairement possible. Attention on est prêt , C'est partie !! :

Le but de tout cela est de pouvoir avoir une image en permanence en bas à droite de la page destinée à revinir en haute de page... Tout simplement...

"langages" utilisés : css, javascript et php (une pointe de rien Smiley cligne jsuteme pour un côté pratique... vous verrez).

Voilà comment je m'y suis pris (certainement pas sans aide mais j'en parle plus loin... Smiley smile )


1) Créer un fichier .inc que vous enregistrez en "image.inc" et dans le quel vous insérez ceci :

<style type="text/css">
#fixed { position: absolute;
bottom: 0;
right: 0;
width:85px;
height:26px;
}

html>body #fixed { position: fixed;
}

</style>
<script type="text/javascript">
function getWindowHeight() {
var windowHeight = 0;
if (typeof(window.innerHeight) == 'number') {
windowHeight = window.innerHeight;
}

else {
if (document.body && document.body.clientHeight) {
windowHeight = document.body.clientHeight;
}

else {
if (document.documentElement && document.documentElement.clientHeight) {
windowHeight = document.documentElement.clientHeight;
}
}
}
return windowHeight;
}
function setFooter() {
if (document.getElementById) {
var windowHeight = getWindowHeight();

if (windowHeight > 0) {
var footerElement = document.getElementById('fixed');

if (windowHeight - 60 >= 0) {
if ((document.all) && (navigator.appVersion.indexOf("Mac",0)<0)) {

footerElement.style.position = 'absolute';
footerElement.style.top = (document.body.scrollTop + windowHeight - 60) + 'px';
}

else {
footerElement.style.position = 'fixed';
footerElement.style.top = (windowHeight - 60) + 'px';
}
}

else {
footerElement.style.position = 'static';
}
}
}
}
window.onload = function() {
setFooter();
}

window.onresize = function() {
setFooter();
}

window.onscroll = function() {
setFooter();
}

</script>


Note : L'extention .inc n'a guère de conséquence dans l'interprétation du code par le navigateur, mais ça permet de l'identifier pour soi même...

2) Vous créez un autre fichier .inc que vous appelez "imretour" et l'enregistrez en imretour.inc, dans lequel vous insérez ceci :

<div id="fixed">

    <p><img src="http://www.votresite.truc/images/votreimage.gif" width="85" height="26" border="0"></p>

</div>


Note importante :
quand vous insérez du code dans un fichier .inc il est impératif de mettre uniquement le code voulu. C'est à dire que vous ne devez mettre rien d'autre comme <html> </html>, <title> </title>, <body> </body>... Pour plus de renseignement c'est ici : http://www.phpdebutant.org/article68.php

Aussi, l'utilisation du php dans une page oblige de renomer son extention en .php. Même pour un chti bout de code comme celui qu'on utilise ici.

Voilà une première partie de faite !


3) Maintenant on va "inclure" ces 2 fichiers aux pages. Pour cela on va utiliser ceci :

<?php include('chemin jusqu'au fichier à inclure'); ?>


Ce code va donc appelé ce qui a été placé dans retour.inc et imretour.inc. Une fois lu dans un navigateur tout s'intégre normalement, à la manière du css...

Donc, dans votre page (l'index par exemple)

a) vous placez dans le head ceci :

<?php include('chemin.../retour.inc'); ?>


b) dans cette même page mais cette fois dans le body et de préférence tout en bas, juste avant </body>, vous placez ceci :

<?php include('chemin.../imretour.inc'); ?>


4) Finalement il vous suffit d'insérer votre ancre de "retour" en haut de votre page, juste après <body> :

 <a name="retour"></a> 


Note importante :
Le php ne s'affiche pas sur votre ordi sans y apporter un plus... Tout vous est expliqué ici : http://www.phpdebutant.org/article118.php au chapître "Utiliser PHP sur son ordinateur" et "Quel outil pour faire du PHP ?". Rien de sorcier.


--------------------------------

Petits réglages :
Pour ajuster la position de l'image cela ce fait dans image.inc, à ces lignes (le -60):
if (windowHeight - 60 >= 0) {
footerElement.style.top = (document.body.scrollTop + windowHeight - 60) + 'px';
footerElement.style.top = (windowHeight - 60) + 'px';


Et pour la taille de l'image, dans retour.inc ce sont les :
width:85px; 
height:26px;


Ainsi que dans imretour.inc :
width="85"
height="26"


--------------------------------

Ressources :

http://www.mandragore2.net (C'est là que j'ai trouvé la base et avec l'aide de son webmaster).
http://www.phpdebutant.org
http://www.alsacreations.com

--------------------------------

Voilà, j'espère que cela est suffisament clair. Toute fois, s'il y a une/des erreur (s) dites moi tout... Ca fonctionne c'est sûre (visible ici : http://www.galihan.net) mais des fois dans les explications ou copies des codes... ??

Outch !! 'vai manger un bout moi Smiley sweatdrop

F.
Hello,
je me greffe à ce sujet car je veux faire la même chose que fuerchan;
je voulais utiliser simplement position: fixed; mais on m'a dit que cela ne fonctionne pas avec Internet Explorer, c'est bien ça ?

édition: j'ai essayé de reprendre le code de blue, qui fonctionne bien, mais l'élément à fixer est une bannière de width: 100% et de hauteur fixe; pour l'instant le haut de la scrollbar est masquée par la bannière, et je ne vois pas bien comment adapter le code pour éviter ce masquage (le contenu du site doit scroller sous la bannière donc je ne peux pas le passer en premier plan par dessus la partie fixe.)
Modifié par Hyp (10 Apr 2006 - 14:24)
Salut,

j'aurai voulu savoir comment forcer l'image à se trouver à droite de la page ; j'ai pourtant fait des float:right là où il me paraissait correct d'en mettre mais aucun effet.

J'attends vos suggestions et merci d'avance à ceux qui me répondront.
en fait, il faut,remplacer :

<style type="text/css">

html>body #fixed { position: fixed;

}
</style>


par

<style type="text/css">

body #fixed { position: fixed;

}
</style>