【问题标题】:Fixed Sidebar - Smooth Scrolling in another Div固定侧边栏 - 在另一个 Div 中平滑滚动
【发布时间】:2014-01-03 02:39:24
【问题描述】:

当点击侧边栏的锚标签时,页面必须向下滚动到内容。我得到了 scrollTop 的正确偏移,但它没有向下滚动。如何解决这个滚动问题

我的 HTML - 包括一个固定的侧边栏

 <div id="sidebar-wrapper">
    <ul class="sidebar-nav" id="sidebar">
      <li class="sidebar-brand"><a id="menu-toggle" href="#">Menu<i class="fa fa2 fa-align-justify"></i></a></li>
      <li><a  href="">Home<i class="fa fa-home "></i></a></li>
      <li><a  href="#about">About<i class="fa fa-beer"></i></a></li>
      <li><a   href="#resume">Resume<i class="fa fa-rocket"></i></span></a></li>
      <li><a  href="#work">Work<i class="fa fa-headphones"></i></a></li>
      <li><a  href="#contact">Contact<i class="fa fa-heart"></i></a></li>
    </ul>
  </div>


 <div id="page-content-wrapper">
    <div class="page-content inset">
      <!-- Home Page -->
      <div class="row container-full" id="home">      

      </div>
      <!-- Home Page End -->
      <!-- About Page -->
      <div class="row container-full" id="about">

我的 CSS

html,body{
 height:100%;
 overflow:auto; // For chrome rendering
 }

 #wrapper {
padding-left: 70px; // For toggling effect
transition: all 0.4s ease 0s;
height: 100%;
  }

#sidebar-wrapper {
-webkit-transform: translateZ(0);
  margin-left: -150px;
  left: 70px;
  width: 150px;
  background: #000;
  position: fixed;
  height: 100%;
  overflow-y: auto;
  z-index: 10000;
  transition: all 0.4s ease 0s;
}
  .page-content{
   height:auto;
}
 #page-content-wrapper {
  width: 95%;
 height: auto;
 }

这是Javascript。我放入警报以查看它是否返回属性所在位置的正确位置。警报工作正常

<script>    
$('#sidebar a').click(function() {
var goTo = $($(this).attr('href')); // selects element that was clicked
var offset = goTo.offset(); //grabs position of element
alert(goTo.offset().top);
$('#page-content').animate({   
  scrollTop: $('#page-content-wrapper')[0].scrollTop + goTo.offset().top
}, 1000);
return false;
});
</script>

【问题讨论】:

    标签: jquery css html


    【解决方案1】:

    (尚未测试)但应该是

    $("html, body").animate({scrollTop: $('#page-content-wrapper')[0].scrollTop.offset().top}, 1000);
    

    更新

    给你,问题是body 上的overflow: auto。我把JS清理到:JSFIDDLE

    【讨论】:

    • 试过..没用...我之前也用过html,body上的动画。直接跳转到锚链接没有动画滚动效果
    • 你能发布剩下的 HTML 吗?这没有显示在小提琴中
    猜你喜欢
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多