平滑滚动代码

时间:2016-04-20 15:35:08

标签: javascript html css

具有以下代码结构,是否需要所需的代码,以便以平滑的动画方式进行滚动?

我在这里保存了一个JSFiddle:https://jsfiddle.net/v7qhzo8q/

代码是:

<nav id="nav">
 <ul id="top">
    <li><a href="#">Home</a></li>
    <li><a href="#vinedo">Viñedo</a></li> 
    <li><a href="#elaboracion">Elaboracion</a></li>
    <li><a href="#contacto">Contacto</a></li>
 </ul>
</nav>

<div id='vinedo' class="div1">
  Vinedo DIV
  <a href="#top">Back to top!</a>
</div>
<div id="elaboracion" class="div2">
  Elaboracion DIV
  <a href="#top">Back to top!</a>
</div>
<div id="contacto" class="div3">
  Contacto DIV
  <a href="#top">Back to top!</a>
</div>

CSS:

.div1 {background:red;height:1000px;}
.div2 {background:green;height:1000px;}
.div3 {background:blue;height:1000px;}

2 个答案:

答案 0 :(得分:0)

给它一个机会。如果我正确地理解你,它应该做你想要的。要更改滚动所需的时间,只需在返回错误代码之前更改数字。它目前设置为600毫秒。

    $(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
            }, 600);  //change this number here to modify how long the scroll takes
            return false;
          }
        }
      });
    });

答案 1 :(得分:0)

嗨,为了一个易于使用的smoothscroll,请使用以下链接,然后按照自述文件中的说明进行设置,希望你说得对。Smoothscroll for Websites