javascript - 平滑滚动到

标签 javascript jquery html css

我想做的是通过单击一个按钮,它会平滑地向下滚动到下一部分,而不会更改背景图像。与此类似; http://www.dada-data.net/en/

我已经能够制作一个滚动到新页面的点击事件,但似乎无法让这些部分在同一背景上向上滚动。

在此先感谢您的帮助!

HTML

<section id="section01" class="demo">

  <div class="hero">
    <img src="/Users/jbeez/desktop/portfolio/JMB_B.png" class="jmb">
  </div>

  <a href="section02"><span></span>Click</a>

</section>

<!-- end of section 1 -->

<section id="section02" class="demo">
  <div>
    <h1>Hello world</h1>
  </div>
</section>

JavaScript

$(function() {
  $('a[href*=#]').on('click', function(e) {
    e.preventDefault();
    $('html, body').animate({ scrollTop: $($(this).attr('href')).offset().top}, 500, 'linear');
  });
});

CSS

 #section01 { background: url(/Users/jbeez/desktop/portfolio/background.png) center center / cover no-repeat;}
    #section02 { background: url(/Users/jbeez/desktop/portfolio/background.png) center center / cover no-repeat;}
    #section03 { background: url(/Users/jbeez/desktop/portfolio/background.png) center center / cover no-repeat;}

.demo a {
      position: absolute;
      bottom: 20px;
      left: 50%;
      z-index: 2;
      display: inline-block;
      -webkit-transform: translate(0, -50%);
      transform: translate(0, -50%);
      color: #fff;
      font : normal 400 20px/1 'Josefin Sans', sans-serif;
      letter-spacing: .1em;
      text-decoration: none;
      transition: opacity .3s;
    }
    .demo a:hover {
      opacity: .5;
    }

    #section01 a {
      padding-top: 60px;
    }
    #section01 a span {
      position: absolute;
      top: 0;
      left: 50%;
      width: 24px;
      height: 24px;
      margin-left: -12px;
      border-left: 1px solid #fff;
      border-bottom: 1px solid #fff;
      -webkit-transform: rotate(-45deg);
      transform: rotate(-45deg);
      box-sizing: border-box;
    }



    #section02 a {
      padding-top: 60px;
    }
    #section02 a span {
      position: absolute;
      top: 0;
      left: 50%;
      width: 46px;
      height: 46px;
      margin-left: -23px;
      border: 1px solid #fff;
      border-radius: 100%;
      box-sizing: border-box;
    }
    #section02 a span::after {
      position: absolute;
      top: 50%;
      left: 50%;
      content: '';
      width: 16px;
      height: 16px;
      margin: -12px 0 0 -8px;
      border-left: 1px solid #fff;
      border-bottom: 1px solid #fff;
      -webkit-transform: rotate(-45deg);
      transform: rotate(-45deg);
      box-sizing: border-box;
    }

最佳答案

就像其他人所说的那样...... # 严重丢失。

<a href="#section02"><span></span>Click</a>

然后,在您使用的属性选择器中,您尝试定位的这个 # 周围缺少一些引号。

$("a[href*='#']")

CodePen代码修复。

关于javascript - 平滑滚动到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45849367/

相关文章:

jquery - 如何以编程方式在 Telerik 的 RadEditor 的第一行设置光标位置?

jQuery 图像 slider 一次加载所有图像

javascript - 拖放多个图像,在客户端调整它们的大小并获取调整大小的图像

javascript - 用动态图像填充 div 并且没有间隙

Javascript增加和减少按钮是2、5和10的倍数

javascript - 如何使用 PHP 验证 null 值?

javascript - 如何创建将导航到 jquery 移动页面之外的页面的链接/按钮

javascript - mapbox:避免低缩放比例下的重复图层

html - 透明 div 无法正常工作

html - Bootstrap 3 : push/pull - bug or mobile first?