Moja propozycja rozwiązania problemu
:
multianchor.html
<style>
a.multianchor {
color: blue;
text-decoration: underline;
cursor: pointer;
}
[id^="slider"] {
margin-top: 100em;
}
</style>
<body>
<li><a id="multianchor" class="multianchor" data-href="slider1,slider2,slider12">Galeria</a></li>
<div id="slider13">Slider13</div>
<div id="slider2">Slider2</div>
<script>
const ma = document.getElementById("multianchor");
ma.addEventListener("click", () => {
const ma_hrefs = ma.dataset.href.split(",");
for (index in ma_hrefs) {
let slide = document.getElementById(ma_hrefs[index]);
if (slide !== null) {
let offsetTop = slide.offsetTop;
window.scrollTo(0, offsetTop);
console.info(`Found it: ${ma_hrefs[index]}`);
break;
}
}
});
</script>
</body>
[ Edit ]
To nie zadziała tak, jak powinno, bo getElementById znajdzie też elementy, które są ukryte.
<style>
a.multianchor {
color: blue;
text-decoration: underline;
cursor: pointer;
}
[id^="slider"] {
margin-top: 100em;
}
.hidden-by-display {
display: none;
}
.hidden-by-visibility {
visibility: hidden; /* visible */
}
.hidden-by-opacity {
opacity: 0;
}
</style>
<body>
<!-- <a id="multianchor" href="javascript:void(0);" data-href="slider1,slider2">Galeria</a> -->
<li><a id="multianchor" class="multianchor" data-href="slider1,slider5,slider4,slider3,slider2">Galeria</a></li>
<div id="slider13">Slider13</div>
<div id="slider2">Slider2</div>
<div id="slider3" class="hidden-by-display">Slide3 hidden-by-display</div>
<div id="slider4" class="hidden-by-visibility">Slide4 hidden-by-visibility</div>
<div id="slider5" class="hidden-by-opacity">Slide5 hidden-by-opacity</div>
<script>
const ma = document.getElementById("multianchor");
ma.addEventListener("click", () => {
const ma_hrefs = ma.dataset.href.split(",");
for (index in ma_hrefs) {
let slide = document.getElementById(ma_hrefs[index]);
if (slide !== null) {
if (getComputedStyle(slide).display !== "none" &&
getComputedStyle(slide).opacity !== "0" &&
getComputedStyle(slide).visibility !== "hidden") {
let offsetTop = slide.offsetTop;
window.scrollTo(0, offsetTop);
console.info(`Found it: ${ma_hrefs[index]}`);
break;
}
}
}
});
</script>
</body>
CodePen