J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine
de lignes.
j'aimerai trouver le moyen en javascript de placer la scroll du div de telle
façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible
a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrick Mevzek
Le Tue, 11 Mar 2008 21:07:55 +0100, Etienne SOBOLE a écrit:
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible a l'ecran.
Donner un id à chaque ligne (le <tr> du tableau), et jouer avec window.location.hash (sans oublier le # initial), le navigateur devrait se positionner directement au bon endroit.
-- Patrick Mevzek . . . . . . . . . . . . . . Dot and Co <http://www.dotandco.net/> <http://www.dotandco.com/>
Le Tue, 11 Mar 2008 21:07:55 +0100, Etienne SOBOLE a écrit:
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible
a l'ecran.
Donner un id à chaque ligne (le <tr> du tableau), et jouer avec
window.location.hash (sans oublier le # initial), le navigateur devrait se
positionner directement au bon endroit.
--
Patrick Mevzek . . . . . . . . . . . . . . Dot and Co
<http://www.dotandco.net/> <http://www.dotandco.com/>
Le Tue, 11 Mar 2008 21:07:55 +0100, Etienne SOBOLE a écrit:
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible a l'ecran.
Donner un id à chaque ligne (le <tr> du tableau), et jouer avec window.location.hash (sans oublier le # initial), le navigateur devrait se positionner directement au bon endroit.
-- Patrick Mevzek . . . . . . . . . . . . . . Dot and Co <http://www.dotandco.net/> <http://www.dotandco.com/>
SAM
Bonjour.
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine de lignes. j'aimerai trouver le moyen en javascript de placer la scroll du div de telle façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Ça dépend d'avec quel navigateur.
Il y a du monde en plus (avant) le tableau ? Les rangées sont toutes de même hauteur ? à part le N° de ligne on a un autre truc pour repérer la rangée ?
function aller(num) { num--; var d = document.getElementById('monTable').rows[num]; // pour bien se la repérer d.style.background = '#ffc'; d.style.color = 'red'; // pour y aller d.id = 'truc'+num; location = '#truc'+num; return false; }
<form action="#" onsubmit="return aller(this.Num.value);"> Aller à la rangée N°<input name="Num"> </form> <table cellspacing="3" border=1 id="monTable"> <tr> ...
Fonctionne avec tous mes navigateurs sauf Safari qui se contente d'aller à la rangée 1
-- sm
Bonjour.
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine
de lignes.
j'aimerai trouver le moyen en javascript de placer la scroll du div de telle
façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible
a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Ça dépend d'avec quel navigateur.
Il y a du monde en plus (avant) le tableau ?
Les rangées sont toutes de même hauteur ?
à part le N° de ligne on a un autre truc pour repérer la rangée ?
function aller(num) {
num--;
var d = document.getElementById('monTable').rows[num];
// pour bien se la repérer
d.style.background = '#ffc';
d.style.color = 'red';
// pour y aller
d.id = 'truc'+num;
location = '#truc'+num;
return false;
}
<form action="#" onsubmit="return aller(this.Num.value);">
Aller à la rangée N°<input name="Num">
</form>
<table cellspacing="3" border=1 id="monTable">
<tr> ...
Fonctionne avec tous mes navigateurs sauf Safari qui se contente d'aller
à la rangée 1
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine de lignes. j'aimerai trouver le moyen en javascript de placer la scroll du div de telle façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Ça dépend d'avec quel navigateur.
Il y a du monde en plus (avant) le tableau ? Les rangées sont toutes de même hauteur ? à part le N° de ligne on a un autre truc pour repérer la rangée ?
function aller(num) { num--; var d = document.getElementById('monTable').rows[num]; // pour bien se la repérer d.style.background = '#ffc'; d.style.color = 'red'; // pour y aller d.id = 'truc'+num; location = '#truc'+num; return false; }
<form action="#" onsubmit="return aller(this.Num.value);"> Aller à la rangée N°<input name="Num"> </form> <table cellspacing="3" border=1 id="monTable"> <tr> ...
Fonctionne avec tous mes navigateurs sauf Safari qui se contente d'aller à la rangée 1
-- sm
SAM
Bonjour.
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine de lignes. j'aimerai trouver le moyen en javascript de placer la scroll du div de telle façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Oui, il suffit que le table et la rangée ne soient pas stylés en display: none; ni en visibility: hidden;
function unRang(laquelle) { var T = document.getElementsByTagName('TR'); for(var i=0; i<T.length; i++) if(i!==(laquelle-1)) T[i].style.display = 'none'; return false; } function tousRangs() { var T = document.getElementsByTagName('TR'); for(var i=0; i<T.length; i++) T[i].style.display = ''; return false; } </script> </head> <body> <form action="#" onsubmit="return unRang(this.Num.value);"> <p>aller rang N°<input name="Num"> <input type=submit value="voir"> <input type=button onclick="return tousRangs()" value=reset> </form> <table cellspacing="3" border=1 id="monTable"> <tr> ...
-- sm
Bonjour.
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine
de lignes.
j'aimerai trouver le moyen en javascript de placer la scroll du div de telle
façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible
a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Oui,
il suffit que le table et la rangée ne soient pas stylés en
display: none;
ni en
visibility: hidden;
function unRang(laquelle) {
var T = document.getElementsByTagName('TR');
for(var i=0; i<T.length; i++)
if(i!==(laquelle-1)) T[i].style.display = 'none';
return false;
}
function tousRangs() {
var T = document.getElementsByTagName('TR');
for(var i=0; i<T.length; i++)
T[i].style.display = '';
return false;
}
</script>
</head>
<body>
<form action="#" onsubmit="return unRang(this.Num.value);">
<p>aller rang N°<input name="Num">
<input type=submit value="voir">
<input type=button onclick="return tousRangs()" value=reset>
</form>
<table cellspacing="3" border=1 id="monTable">
<tr> ...
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine de lignes. j'aimerai trouver le moyen en javascript de placer la scroll du div de telle façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Oui, il suffit que le table et la rangée ne soient pas stylés en display: none; ni en visibility: hidden;
function unRang(laquelle) { var T = document.getElementsByTagName('TR'); for(var i=0; i<T.length; i++) if(i!==(laquelle-1)) T[i].style.display = 'none'; return false; } function tousRangs() { var T = document.getElementsByTagName('TR'); for(var i=0; i<T.length; i++) T[i].style.display = ''; return false; } </script> </head> <body> <form action="#" onsubmit="return unRang(this.Num.value);"> <p>aller rang N°<input name="Num"> <input type=submit value="voir"> <input type=button onclick="return tousRangs()" value=reset> </form> <table cellspacing="3" border=1 id="monTable"> <tr> ...
-- sm
SAM
Bonjour.
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine de lignes. j'aimerai trouver le moyen en javascript de placer la scroll du div de telle façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Ha! mais en fait tu veux faire glisser le table dans l'overflowed ?
function ceRang(num) { var T = document.getElementById('monTable'); T.style.marginTop = 0; num--; var N = T.rows.length; T.style.marginTop = -(T.offsetHeight/N * num)+'px'; return false; }
Cette fois ça fonctionne même avec Safari ;-) (toutes les rangées doivent être de même hauteur)
-- sm
Bonjour.
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine
de lignes.
j'aimerai trouver le moyen en javascript de placer la scroll du div de telle
façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible
a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Ha! mais en fait tu veux faire glisser le table dans l'overflowed ?
function ceRang(num) {
var T = document.getElementById('monTable');
T.style.marginTop = 0;
num--;
var N = T.rows.length;
T.style.marginTop = -(T.offsetHeight/N * num)+'px';
return false;
}
J'ai un div avec un ascenseur qui contient un tableau de plusieurs centaine de lignes. j'aimerai trouver le moyen en javascript de placer la scroll du div de telle façon qu'une ligne soit visible.
par exemple je voudrai en cliquant sur un bouton rendre la ligne 100 visible a l'ecran.
est ce quelqu'un saurait comment je peux faire ca?
Ha! mais en fait tu veux faire glisser le table dans l'overflowed ?
function ceRang(num) { var T = document.getElementById('monTable'); T.style.marginTop = 0; num--; var N = T.rows.length; T.style.marginTop = -(T.offsetHeight/N * num)+'px'; return false; }
Ha! mais en fait tu veux faire glisser le table dans l'overflowed ?
yeap.
function ceRang(num) { var T = document.getElementById('monTable'); T.style.marginTop = 0; num--; var N = T.rows.length; T.style.marginTop = -(T.offsetHeight/N * num)+'px'; return false; }
Cette fois ça fonctionne même avec Safari ;-) (toutes les rangées doivent être de même hauteur)
Je vais tester toutes ces propositions. merci!
Etienne
Ha! mais en fait tu veux faire glisser le table dans l'overflowed ?
yeap.
function ceRang(num) {
var T = document.getElementById('monTable');
T.style.marginTop = 0;
num--;
var N = T.rows.length;
T.style.marginTop = -(T.offsetHeight/N * num)+'px';
return false;
}
Ha! mais en fait tu veux faire glisser le table dans l'overflowed ?
yeap.
function ceRang(num) { var T = document.getElementById('monTable'); T.style.marginTop = 0; num--; var N = T.rows.length; T.style.marginTop = -(T.offsetHeight/N * num)+'px'; return false; }