Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 平滑滚动div到div_Javascript_Jquery_Html - Fatal编程技术网

Javascript 平滑滚动div到div

Javascript 平滑滚动div到div,javascript,jquery,html,Javascript,Jquery,Html,我有一个平稳的卷轴锚和它的工作完美。但是这个JS与我使用的插件冲突,所以我需要更改脚本 我想要的不是锚,而是一个div,但我不知道怎么做 注意:有一个a href链接指向不同的页面 这是我目前正在使用的脚本 jQuery.noConflict(); jQuery(document).ready(function($){ $('a[href*=#]:not([href=#])').click(function() { if (location.pathname.replace(/^\//,'')

我有一个平稳的卷轴锚和它的工作完美。但是这个JS与我使用的插件冲突,所以我需要更改脚本

我想要的不是锚,而是一个div,但我不知道怎么做

注意:有一个a href链接指向不同的页面

这是我目前正在使用的脚本

jQuery.noConflict();
jQuery(document).ready(function($){
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname){
  var target = $(this.hash);
  target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
  if (target.length) {
    $('html,body').animate({
      scrollTop: target.offset().top
    }, 1000);
    return false;
  }
}
});
});
我需要的html示例(我不知道html的格式是否正确):

该代码正在工作,但是当div有指向另一个页面的链接时,代码就不工作了

html示例:

<div data-anchor="/testEnvironment/how-can-i-get-a-loan/#whocangetaloan"></div>

此html被放置到不同的页面

<section id="#whocangetaloan"></section>

当您希望使用div而不是链接时,可以使用数据属性来提供锚定信息。标记将如下所示:

<header>
  <div id="menu">
    <div data-anchor="#home">Home</div>
    <div data-anchor="#about">About</div>
    <div data-anchor="#services">Services</div>
    <div data-anchor="#projects">Projects</div>
    <div data-anchor="#contact">Contact</div>
  </div>
</header>

<section id="home"></section>
<section id="about"></section>
<section id="services"></section>
<section id="projects"></section>
<section id="contact"></section>


这将使
a
标签不再需要平滑滚动到页面上的锚定位置。现在可以正常使用指向外部页面和锚定的链接,而不会与原始脚本发生任何冲突。

请也显示HTML。对于临时读者,使用外部链接的正常
a
标记可以解决问题的最后一点。带有数据属性的代码将使相同的页面平滑滚动成为可能,并保留这些常规链接。
<section id="#whocangetaloan"></section>
<header>
  <div id="menu">
    <div data-anchor="#home">Home</div>
    <div data-anchor="#about">About</div>
    <div data-anchor="#services">Services</div>
    <div data-anchor="#projects">Projects</div>
    <div data-anchor="#contact">Contact</div>
  </div>
</header>

<section id="home"></section>
<section id="about"></section>
<section id="services"></section>
<section id="projects"></section>
<section id="contact"></section>
jQuery.noConflict();

jQuery(document).ready(function($) {

$('[data-anchor]').click(function() {

    var target = $($(this).data('anchor'));

    if (target.length) {

    $('html, body').animate({
    scrollTop: target.offset().top
    }, 1000);
    }
});
});