JavaScript issue with scrollTo() in Chrome

前端 未结 2 672
没有蜡笔的小新
没有蜡笔的小新 2020-12-10 05:31

I try to create a web page with a fixed navigation bar at the top that covers the content underneath. When loading the page with an anchor in the url the normal behaviour is

2条回答
  •  夕颜
    夕颜 (楼主)
    2020-12-10 06:29

    Chrome is so fast that your scrollTo() action fires before Chrome's default scroll to html anchor event.

    Give it a tiny delay by using

    setTimeout(function() {window.scrollTo(0, y);},1)
    

    Or simply avoid using the actual element id as hash name

    instead of using

    test.htm#6

    use

    test.htm#link_6

    then you can get the real id by doing something like

    window.location.hash.split('_')[1]
    

    Hope it helps.

提交回复
热议问题