滚动到ID根本不工作?怎么了



我的网站www.ecole.com.上的滚动功能有问题

我有一个按钮,它应该滚动到我页面上的特定ID,但按钮不起作用。

我检查了几次代码,但看起来一切都很好,仍然无法工作。

我的按钮代码如下:

<div class="home-description"><a class="buttons button2" title="Ecolee search engine details" href="#scroll">▼</a></div>

我的div ID代码如下:

<div class="home-description" id="scroll"> <a title="Ecolee donating and charity search engine"> <H1>How Ecolee charity and donating search engine works?</H1></a></div>

我的css:

html {scroll-behavior: smooth;}

我想你可以尝试在js中使用这样的东西。

document.getElementById("scroll").scrollIntoView({behavior: 'smooth'});

滚动行为CSS实际上正在工作。这不是问题所在。我已经通过开发工具测试过了,可以确认一切都很好。

您的网站存在的一个问题是没有定义jQuery。这可能会破坏网站上的其他功能,例如flexImages需要jQuery作为依赖项。

页面预加载程序使用的是什么。无论处理页面加载的是什么,似乎都劫持了所有href,因此锚链接的预期行为正在中断,因为它试图加载新页面,而不是滚动到锚。

需要了解一些底层技术才能正确诊断问题,但我认为这似乎与页面预加载程序有关。页面底部的信息链接,而不仅仅是一个简单的链接,似乎可以做到以下几点:

  • 用户点击链接
  • Javascript阻止默认操作(转到href(
  • Javascript启动预加载程序操作
  • Javascript推送链接的href

因此,无论何时使用锚链接,在试图查找#scroll的href时,相同的过程都会中断,因为这不是一个有效的URL,history.push将无法对其工作。

编辑

对此,一个简单的解决方案可能是只在具有特定ID的链接上调用预加载程序函数,而不是调用所有标签。这将允许锚链接继续默认行为,并且仍然在其他任何内容上启用预加载程序。

相关内容

最新更新