Skip to content

Commit da4ef52

Browse files
committed
ui(catalog): augmentation hauteur panel + scroll automatique au clic sur section / couche
1 parent d3e1d41 commit da4ef52

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

src/packages/Controls/Catalog/CatalogDOM.js

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -455,9 +455,9 @@ var CatalogDOM = {
455455
// mais il faudrait pouvoir le configurer dynamiquement en fonction de la presence
456456
// ou non de la barre de recherche spécifique qui decale le panneau vers le bas
457457
// cf. var tabHeight dans le main container
458-
var height = "250px";
458+
var height = "330px";
459459
if (active && !search) {
460-
height = "310px";
460+
height = "390px";
461461
}
462462
return `
463463
<!-- panneaux -->
@@ -505,9 +505,9 @@ var CatalogDOM = {
505505
// FIXME
506506
// le calcul de la hauteur est realisé à la main pour pallier le manque de JS DSFR (?)
507507
// style="--tabs-height: 294px;"
508-
var tabHeight = "294px"; // par defaut
508+
var tabHeight = "369px"; // par defaut
509509
if (hasActiveBar) {
510-
tabHeight = "354px"; // si la barre de recherche spécifique est active
510+
tabHeight = "434px"; // si la barre de recherche spécifique est active
511511
}
512512
var strContainer = `
513513
<!-- onglets -->
@@ -1004,6 +1004,16 @@ var CatalogDOM = {
10041004
if (e.target.ariaExpanded === "true") {
10051005
collapse.classList.add("fr-collapse--expanded");
10061006
collapse.classList.remove("GPelementHidden");
1007+
// scroll auto sur le bouton cliqué (dsfr oblige de passer par scrollTop sur le container au lieu de scrollIntoView)
1008+
const container = button.closest("div[id^=\"tabpanel-\"]");
1009+
const buttonRect = button.getBoundingClientRect();
1010+
const containerRect = container.getBoundingClientRect();
1011+
const offset = buttonRect.top - containerRect.top;
1012+
1013+
container.scrollTo({
1014+
top : container.scrollTop + offset,
1015+
behavior : "smooth"
1016+
});
10071017
} else {
10081018
collapse.classList.remove("fr-collapse--expanded");
10091019
collapse.classList.add("GPelementHidden");
@@ -1026,6 +1036,17 @@ var CatalogDOM = {
10261036
if (e.target.ariaPressed === "true") {
10271037
collapse.classList.add("gpf-visible");
10281038
collapse.classList.remove("gpf-hidden");
1039+
// scroll auto sur le bouton cliqué (dsfr oblige de passer par scrollTop sur le container au lieu de scrollIntoView)
1040+
button.closest("div[id^=\"tabpanel-\"]");
1041+
const container = button.closest("div[id^=\"tabpanel-\"]");
1042+
const buttonRect = button.getBoundingClientRect();
1043+
const containerRect = container.getBoundingClientRect();
1044+
const offset = buttonRect.top - containerRect.top;
1045+
1046+
container.scrollTo({
1047+
top : container.scrollTop + offset,
1048+
behavior : "smooth"
1049+
});
10291050
} else {
10301051
collapse.classList.remove("gpf-visible");
10311052
collapse.classList.add("gpf-hidden");

0 commit comments

Comments
 (0)