• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Scroll po wczytaniu strony

Object Storage Arubacloud
+1 głos
138 wizyt
pytanie zadane 11 lipca 2020 w JavaScript przez Mikes_Pl Nowicjusz (180 p.)
edycja 11 lipca 2020 przez Mikes_Pl
Cześć mam szybkie pytanie jak zrobić w czystym JS żeby po wczytaniu strony scroll automatycznie przewinął się do wybranego elementu?

3 odpowiedzi

0 głosów
odpowiedź 11 lipca 2020 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 12 lipca 2020 przez Mikes_Pl
 
Najlepsza

Chodzi Ci o metodę element.scrollIntoView? Alternatywnie możesz załadować stronę linkiem, który na końcu ma id tego elementu poprzedzone znakiem "#" (hash).

0 głosów
odpowiedź 12 lipca 2020 przez VBService Ekspert (253,340 p.)
edycja 12 lipca 2020 przez VBService

scroll-js.html [ window.scrollTo ]

<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="utf-8">

    <style>
        body {
            width: 50%;
            margin: 0 auto;
        }
        i {
            background-color: red;
            color: white;
            font-style: normal;
            font-family: Tahoma;
            font-size: 10px;
        }
        p {
            margin-bottom: 100vh;
        }
    </style>
    </head>
    <body>
        <p>Ut congue leo accumsan pretium feugiat. Maecenas pharetra turpis massa, eu mollis tellus dignissim non. Phasellus ac tortor eu tortor dignissim auctor. Morbi lobortis, dolor et porttitor faucibus, est magna condimentum sapien, vel placerat arcu tellus in nunc. Praesent sit amet sagittis nunc, ac rutrum ex. Sed sollicitudin nisl vel odio convallis, nec ornare lectus dapibus. Cras tincidunt sem a eros semper, varius fringilla purus dictum. Etiam id tellus iaculis, congue quam nec, sagittis erat. Duis sem mi, tincidunt et iaculis sed, dapibus non diam. Ut porta quis mauris in luctus. Pellentesque commodo turpis eget aliquet consequat. Maecenas sed diam sed justo tincidunt cursus in a neque. Vestibulum laoreet ante sit amet convallis vestibulum.</p>
        <p>Ut congue leo accumsan pretium feugiat. Maecenas pharetra turpis massa, eu mollis tellus dignissim non. Phasellus ac tortor eu tortor dignissim auctor. Morbi lobortis, dolor et porttitor faucibus, est magna condimentum sapien, vel placerat arcu tellus in nunc. Praesent sit amet sagittis nunc, ac rutrum ex. Sed sollicitudin nisl vel odio convallis, nec ornare lectus dapibus. Cras tincidunt sem a eros semper, varius fringilla purus dictum. Etiam id tellus iaculis, congue quam nec, sagittis erat. Duis sem mi, tincidunt et iaculis sed, dapibus non diam. Ut porta quis mauris in luctus. Pellentesque commodo turpis eget aliquet consequat. Maecenas sed diam sed justo tincidunt cursus in a neque. Vestibulum laoreet ante sit amet convallis vestibulum.</p>

        <p id="anch1"><i>Anchor 1</i> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a metus id libero scelerisque convallis. Nullam gravida felis sit amet sem ornare porta. Aliquam scelerisque feugiat quam, eget scelerisque risus tempus eget. Nam finibus, ex in aliquet laoreet, lorem felis posuere felis, at consequat odio lectus non est. Ut rhoncus dignissim auctor. Donec at sapien placerat, consectetur dui ut, egestas magna. Ut sed tellus dolor. Curabitur vel vestibulum justo. Donec scelerisque, purus eget commodo lacinia, odio ante molestie leo, in fermentum dolor arcu et turpis. Proin aliquam lobortis metus ut ultricies. Pellentesque fermentum sit amet neque vel porttitor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc vel dui purus. Curabitur turpis lectus, finibus non gravida at, efficitur id justo. Morbi commodo nulla id mollis commodo. Fusce id nisi interdum, efficitur mauris in, cursus urna. Duis vel interdum dui, eget tincidunt arcu. Sed quis pharetra ligula. Nam eros nisl, posuere eu ullamcorper non, interdum vel turpis. Ut non mollis eros. Etiam elementum condimentum porttitor. Praesent in sagittis ex, at mollis enim.</p>
        <p>Ut congue leo accumsan pretium feugiat. Maecenas pharetra turpis massa, eu mollis tellus dignissim non. Phasellus ac tortor eu tortor dignissim auctor. Morbi lobortis, dolor et porttitor faucibus, est magna condimentum sapien, vel placerat arcu tellus in nunc. Praesent sit amet sagittis nunc, ac rutrum ex. Sed sollicitudin nisl vel odio convallis, nec ornare lectus dapibus. Cras tincidunt sem a eros semper, varius fringilla purus dictum. Etiam id tellus iaculis, congue quam nec, sagittis erat. Duis sem mi, tincidunt et iaculis sed, dapibus non diam. Ut porta quis mauris in luctus. Pellentesque commodo turpis eget aliquet consequat. Maecenas sed diam sed justo tincidunt cursus in a neque. Vestibulum laoreet ante sit amet convallis vestibulum.</p>
        <p id="anch2"><i>Anchor 2</i> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a metus id libero scelerisque convallis. Nullam gravida felis sit amet sem ornare porta. Aliquam scelerisque feugiat quam, eget scelerisque risus tempus eget. Nam finibus, ex in aliquet laoreet, lorem felis posuere felis, at consequat odio lectus non est. Ut rhoncus dignissim auctor. Donec at sapien placerat, consectetur dui ut, egestas magna. Ut sed tellus dolor. Curabitur vel vestibulum justo. Donec scelerisque, purus eget commodo lacinia, odio ante molestie leo, in fermentum dolor arcu et turpis. Proin aliquam lobortis metus ut ultricies. Pellentesque fermentum sit amet neque vel porttitor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc vel dui purus. Curabitur turpis lectus, finibus non gravida at, efficitur id justo. Morbi commodo nulla id mollis commodo. Fusce id nisi interdum, efficitur mauris in, cursus urna. Duis vel interdum dui, eget tincidunt arcu. Sed quis pharetra ligula. Nam eros nisl, posuere eu ullamcorper non, interdum vel turpis. Ut non mollis eros. Etiam elementum condimentum porttitor. Praesent in sagittis ex, at mollis enim.</p>

    <script>
        scrollToAnch("anch1");
        setTimeout(scrollToAnch, 2000, "anch2");

        function scrollToAnch(id) {
            const el = document.querySelector(`#${id}`);
            const pos = el.getBoundingClientRect().top + window.pageYOffset;

            window.scrollTo({
                top: pos,
                behavior: 'smooth'
            });
        }
    </script>
    </body>
</html>

Window.pageYOffset ] [ element.getBoundingClientRect ]

0 głosów
odpowiedź 12 lipca 2020 przez VBService Ekspert (253,340 p.)

scroll-js.html [ element.scrollIntoView ]

<!DOCTYPE html>
<html lang="pl">
    <head>
        <meta charset="utf-8">

    <style>
        body {
            width: 50%;
            margin: 0 auto;
        }
        i {
            background-color: red;
            color: white;
            font-style: normal;
            font-family: Tahoma;
            font-size: 10px;
        }
        p {
            margin-bottom: 100vh;
        }
    </style>
    </head>
    <body>
        <p>Ut congue leo accumsan pretium feugiat. Maecenas pharetra turpis massa, eu mollis tellus dignissim non. Phasellus ac tortor eu tortor dignissim auctor. Morbi lobortis, dolor et porttitor faucibus, est magna condimentum sapien, vel placerat arcu tellus in nunc. Praesent sit amet sagittis nunc, ac rutrum ex. Sed sollicitudin nisl vel odio convallis, nec ornare lectus dapibus. Cras tincidunt sem a eros semper, varius fringilla purus dictum. Etiam id tellus iaculis, congue quam nec, sagittis erat. Duis sem mi, tincidunt et iaculis sed, dapibus non diam. Ut porta quis mauris in luctus. Pellentesque commodo turpis eget aliquet consequat. Maecenas sed diam sed justo tincidunt cursus in a neque. Vestibulum laoreet ante sit amet convallis vestibulum.</p>
        <p>Ut congue leo accumsan pretium feugiat. Maecenas pharetra turpis massa, eu mollis tellus dignissim non. Phasellus ac tortor eu tortor dignissim auctor. Morbi lobortis, dolor et porttitor faucibus, est magna condimentum sapien, vel placerat arcu tellus in nunc. Praesent sit amet sagittis nunc, ac rutrum ex. Sed sollicitudin nisl vel odio convallis, nec ornare lectus dapibus. Cras tincidunt sem a eros semper, varius fringilla purus dictum. Etiam id tellus iaculis, congue quam nec, sagittis erat. Duis sem mi, tincidunt et iaculis sed, dapibus non diam. Ut porta quis mauris in luctus. Pellentesque commodo turpis eget aliquet consequat. Maecenas sed diam sed justo tincidunt cursus in a neque. Vestibulum laoreet ante sit amet convallis vestibulum.</p>

        <p id="anch1"><i>Anchor 1</i> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a metus id libero scelerisque convallis. Nullam gravida felis sit amet sem ornare porta. Aliquam scelerisque feugiat quam, eget scelerisque risus tempus eget. Nam finibus, ex in aliquet laoreet, lorem felis posuere felis, at consequat odio lectus non est. Ut rhoncus dignissim auctor. Donec at sapien placerat, consectetur dui ut, egestas magna. Ut sed tellus dolor. Curabitur vel vestibulum justo. Donec scelerisque, purus eget commodo lacinia, odio ante molestie leo, in fermentum dolor arcu et turpis. Proin aliquam lobortis metus ut ultricies. Pellentesque fermentum sit amet neque vel porttitor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc vel dui purus. Curabitur turpis lectus, finibus non gravida at, efficitur id justo. Morbi commodo nulla id mollis commodo. Fusce id nisi interdum, efficitur mauris in, cursus urna. Duis vel interdum dui, eget tincidunt arcu. Sed quis pharetra ligula. Nam eros nisl, posuere eu ullamcorper non, interdum vel turpis. Ut non mollis eros. Etiam elementum condimentum porttitor. Praesent in sagittis ex, at mollis enim.</p>
        <p>Ut congue leo accumsan pretium feugiat. Maecenas pharetra turpis massa, eu mollis tellus dignissim non. Phasellus ac tortor eu tortor dignissim auctor. Morbi lobortis, dolor et porttitor faucibus, est magna condimentum sapien, vel placerat arcu tellus in nunc. Praesent sit amet sagittis nunc, ac rutrum ex. Sed sollicitudin nisl vel odio convallis, nec ornare lectus dapibus. Cras tincidunt sem a eros semper, varius fringilla purus dictum. Etiam id tellus iaculis, congue quam nec, sagittis erat. Duis sem mi, tincidunt et iaculis sed, dapibus non diam. Ut porta quis mauris in luctus. Pellentesque commodo turpis eget aliquet consequat. Maecenas sed diam sed justo tincidunt cursus in a neque. Vestibulum laoreet ante sit amet convallis vestibulum.</p>
        <p id="anch2"><i>Anchor 2</i> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras a metus id libero scelerisque convallis. Nullam gravida felis sit amet sem ornare porta. Aliquam scelerisque feugiat quam, eget scelerisque risus tempus eget. Nam finibus, ex in aliquet laoreet, lorem felis posuere felis, at consequat odio lectus non est. Ut rhoncus dignissim auctor. Donec at sapien placerat, consectetur dui ut, egestas magna. Ut sed tellus dolor. Curabitur vel vestibulum justo. Donec scelerisque, purus eget commodo lacinia, odio ante molestie leo, in fermentum dolor arcu et turpis. Proin aliquam lobortis metus ut ultricies. Pellentesque fermentum sit amet neque vel porttitor. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Nunc vel dui purus. Curabitur turpis lectus, finibus non gravida at, efficitur id justo. Morbi commodo nulla id mollis commodo. Fusce id nisi interdum, efficitur mauris in, cursus urna. Duis vel interdum dui, eget tincidunt arcu. Sed quis pharetra ligula. Nam eros nisl, posuere eu ullamcorper non, interdum vel turpis. Ut non mollis eros. Etiam elementum condimentum porttitor. Praesent in sagittis ex, at mollis enim.</p>

    <script>
        scrollToAnchTop("anch1");
        setTimeout(scrollToAnchTop, 2000, "anch2");

        function scrollToAnchTop(id) {
            const el = document.querySelector(`#${id}`);
            el.scrollIntoView({
                behavior: 'smooth',
                block: 'start'
            });
        }
    </script>
    </body>
</html>

 

Podobne pytania

0 głosów
2 odpowiedzi 475 wizyt
pytanie zadane 8 grudnia 2018 w JavaScript przez povalor Nowicjusz (190 p.)
0 głosów
1 odpowiedź 226 wizyt
0 głosów
1 odpowiedź 175 wizyt
pytanie zadane 24 lipca 2020 w JavaScript przez Bakkit Dyskutant (7,600 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...