javascript - 单击 span 元素时平滑滚动到特定的 div

标签 javascript jquery html css smooth-scrolling

我对这一切都很陌生,所以我可能只是遗漏了一些东西。但是,我试图在我的网页底部创建一个箭头,然后滚动到它下面的 div。我读了这篇文章 Smooth scroll to specific div on click但无法让它为我工作。我在这里开始了一个 fiddle :https://jsfiddle.net/ConnorBetts/ua4z6x7n/2/ (黑框是箭头的占位符。)

这是我所拥有的...

HTML:

html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}

#hero-text {
  text-align: center;
  position: relative;
  top: 50%;
  -ms-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  color: white;
  font-family: stevie-sans, sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: 40px;
  text-shadow: 0px 0px 3px rgba(0, 0, 0, .5);
  padding-left: 20px;
  padding-right: 20px;
}

#homehero {
  display: block;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(130deg, rgb(249, 204, 0) 0%, rgb(249, 185, 60) 100%);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
}

.homepage-arrow {
  position: absolute;
  width: 50px;
  height: 13px;
  background: url("images/arrow.svg") no-repeat center center;
  background-color: #000;
  background-size: 50px 13px;
  bottom: 20px;
  left: 50%;
  margin-left: -25px;
  padding: 5px;
  box-sizing: content-box;
  display: block;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  filter: drop-shadow( 0px 0px 5px rgba(0, 0, 0, .3));
}

.bigdivlight {
  margin: auto;
  padding-top: 100px;
  padding-bottom: 100px;
  padding-left: 20px;
  padding-right: 20px;
  color: #303030;
  max-width: 1000px;
  text-align: center;
}
<div id="homehero">
  <p id="hero-text">Test</p>
  <span href="#about" class="homepage-arrow" alt="arrow"></span>
</div>
<div id="about" class="bigdivlight">
  <h3>Hey,</h3>
  <p class="darktext">I'm some example text</p>
</div>

我正在尝试使其工作类似于 snapchat.com .

最佳答案

您需要添加 jQuery 脚本:

$(".homepage-arrow").click(function() {
    $('html,body').animate({
        scrollTop: $("#about").offset().top},
        'slow');
});
html,
body {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
}

#hero-text {
  text-align: center;
  position: relative;
  top: 50%;
  -ms-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  color: white;
  font-family: stevie-sans, sans-serif;
  font-style: normal;
  font-weight: 500;
  font-size: 40px;
  text-shadow: 0px 0px 3px rgba(0, 0, 0, .5);
  padding-left: 20px;
  padding-right: 20px;
}

#homehero {
  display: block;
  width: 100%;
  height: 100%;
  background-image: linear-gradient(130deg, rgb(249, 204, 0) 0%, rgb(249, 185, 60) 100%);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
}

.homepage-arrow {
  position: absolute;
  width: 50px;
  height: 13px;
  background: url("images/arrow.svg") no-repeat center center;
  background-color: #000;
  background-size: 50px 13px;
  bottom: 20px;
  left: 50%;
  margin-left: -25px;
  padding: 5px;
  box-sizing: content-box;
  display: block;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  filter: drop-shadow( 0px 0px 5px rgba(0, 0, 0, .3));
}

.bigdivlight {
  margin: auto;
  padding-top: 100px;
  padding-bottom: 100px;
  padding-left: 20px;
  padding-right: 20px;
  color: #303030;
  max-width: 1000px;
  text-align: center;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="homehero">
  <p id="hero-text">Test</p>
  <span href="#about" class="homepage-arrow" alt="arrow"></span>
</div>
<div id="about" class="bigdivlight">
  <h3>Hey,</h3>
  <p class="darktext">I'm some example text</p>
</div>

关于javascript - 单击 span 元素时平滑滚动到特定的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42571395/

相关文章:

javascript - 防止 UIWebView 重新定位输入字段

javascript - Uncaught ReferenceError : $ is not defined?

javascript - 如何减少对每个空选择使用错误消息

jquery - 使用 navbar-fixed 和 materialize 时我的图标消失了

javascript - 使用下拉列表填充 HTML 页面

javascript - 如何创建谷歌标签管理器触发器

javascript - 使用jquery解析具有未知字段名称的json多个数组

javascript - JQuery 只加载页面的最后 n 行

jquery - 在 FF 中设置宽度时 Div 不包含另一个元素

php - 正则表达式:如何验证路径不包含//