18910140161

JavaScript-同一页面上指向DIV的锚链接在Safari中不起作用-堆栈溢出

顺晟科技

2022-10-18 12:29:27

86

我有一个基于REACT的网站,包括每个页面顶部的链接列表:

<代码><;UL>;<;Li>;<;a href=";/";>;主页<;/a>;<;/Li>;<;Li>;<;a href=";/about-us";>;关于我们<;/a>;<;/Li>;<;Li>;<;a href=";/#ContactSection";>;联系我们<;/a>;<;/Li>;<;/UL>;

在主页的底部,我有这样一段HTML:

<代码><;部分ID=";联系部分";类名=";接触部分PTB_100<;H2>;联系我们<;/H2>;...HTML表单..<;/部分>;

当我单击主页顶部的“联系我们”链接时,Chrome将滚动到由<ul> <li><a href="/">HOME</a></li> <li><a href="/about-us">ABOUT US</a></li> <li><a href="/#contactSection">CONTACT US</a></li> </ul> 标识的正确HTML,但是,Safari将滚动到页面顶部。当我从网站上的另一个页面单击“联系我们”链接时,或者如果我在地址栏中键入<section id="contactSection" className="contactSection ptb_100"> <h2>Contact Us</h2> ...HTML FORM... </section> 并按Enter键,Safari会正确滚动。

我看过建议将contactSection添加到href的线程,但这似乎不起作用。有什么建议吗?。

更新问题的原因是页面顶部的粘滞标题导致Safari将页面保持在顶部。删除粘头,解决了这个问题,虽然不知道为什么。


顺晟科技:

你不应该加";/";对于相同的页面ID行

<代码>HTML{滚动-行为:平滑;}#mydiv{/*启用滚动*/顶部边距:3000px;/*附加(非必需)*/垫底:2em;背景:红色;}
<代码><;a href=“#mydiv ”>;单击Mo转到MyDiv!<;/a>;<;DIV ID=“ mydiv ”>;这是mydiv<;/DIV>;

试试这个。在HTML中

#contactSection

而在JS中

<代码>函数ScrollToElement(ID){const el=document.queryselector(ID);如果(EL){EL.ScrollIntoView();}}
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航