Scroll Smooth in Safari
Modify date: 2020-03-17
Question
When editing my website, I wanted to scroll smoothly between sections, and when scrolling to top.
Solution 1
Basically, I found the simply way to achieve this with CSS properties:
scroll-behavior: smooth;
However, I noticed that Safari didn't support the CSS property "scroll-behavior". So I need a special way to achieve this.
Solution 2
I found the jQuery script to achieve such design.
<script src="https://code.jquery.com/jquery-3.4.1.min.js"
    integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script>
    $(document).ready(function () {
        $("a").on('click', function (event) {
            if (this.hash !== "") {
                event.preventDefault();
                var hash = this.hash;
                $('html, body').animate({
                    scrollTop: $(hash).offset().top
                }, 800, function () {
                    window.location.hash = hash;
                });
            }
        });
    });
</script>