导航栏在固定后跟随滚动

时间:2016-04-23 20:01:23

标签: html css

我在网站上有一个产品页面。 我有一个像家一样的顶级菜单,等等.... 然后我试图让左边的菜单与产品列表保持一致。 看图像: menu idea

使用我当前的代码,然后左边的菜单跟随滚动,这里是代码:

<div id="product-list">
<ul>
  <li><a href="bfm.html">item 1</a></li>
  <li><a href="hbm.html">item 1</a></li>
  <li><a href="laminated.html">item 1</a></li>
  <li><a href="ps.html">item 1</a></li>
  <li><a href="pm.html">item 1</a></li>
  <li><a href="wm.html">item 1</a></li>
</ul>
</div>

#product-list{
    position:fixed;
}
#product-list ul {
    list-style-type: none;
    margin: 0;
    padding: 0;
    width: 12%;
    background-color: #FFF;
    position:fixed;
    height: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-top:10%;
}
#product-list li{
    overflow: hidden;
    text-overflow: ellipsis;
}
#product-list li a {
    display: block;
    color: #000;
    padding: 8px 0 8px 16px;
    text-decoration: none;
}
#product-list li a:hover:not(.active) {
    background-color: #555;
    color: white;
}

1 个答案:

答案 0 :(得分:1)

Plunkr Example

我做的更改

我在你的代码上做了一些事情。

  1. 在您的样式定义中,我删除了一些重复的代码。你有columns = {c: c.strip() for c in df.columns} # or any cleaning df.rename(columns, inplace=True) 的几个地方使它成为一个固定的元素,这很烦人。
  2. 我添加了一个&#34;特殊情况&#34;类#product-list删除列表顶部的填充,并将其#product-list.fixed更改为positionfixed偏移量为top
  3. 我改变了你的HTML。我删除了产品列表0的包装div,并将ul ID添加到了#product-list
  4. 如果滚动条大于您商品的原始位置,我还在javacript中添加了ul类添加/删除.fixed类。
  5. 我添加了一个#product-list元素,以便在我们添加transition:all linear 0.3
  6. 时平滑更改
  7. 在下面的代码中我只是将弹出的图像更改为placehold.it图像,这样我就不会使用你的带宽了。
  8. 修改更改了z-index以允许侧边菜单在页脚下滑动。
  9. 代码

    以下代码的顺序是

    1. Javascript(我使用jQuery,这是一个超级流行的框架)
    2. CSS(您可能希望查看像Bootstrap这样可以减少开发时间的CSS框架)
    3. HTML
    4. &#13;
      &#13;
      fixed
      &#13;
      $(document).ready(function() {
        var side_offset = $('#product-list').offset();
        //Initial offset.
        $(document).on('scroll', function() {
          $('#product-list').toggleClass('fixed', $(document).scrollTop() > side_offset.top);
        });
      })
      &#13;
      @charset "utf-8";
      
      /* CSS Document */
      
      html * {
        font-family: verdana;
        !important;
      }
      #header {
        background-color: #565656;
        color: white;
        text-align: center;
        height: 10%;
        position: relative;
        z-index: 999;
      }
      #header ul {
        list-style-type: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
        text-align: center;
        vertical-align: middle;
      }
      #header li {
        display: inline;
      }
      #header li a {
        display: inline-block;
        color: white;
        text-align: center;
        padding: 14px 30px;
        text-decoration: none;
        vertical-align: middle;
      }
      #header li a.active {
        text-decoration: underline;
      }
      #header li a:hover {
        background-color: #111;
      }
      #header li a.a-no-hover:hover {
        background-color: transparent;
      }
      #product-list {
        list-style-type: none;
        margin: 0;
        padding: 0;
        width: 12%;
        background-color: #FFF;
        position: absolute;
        height: 100%;
        overflow: hidden;
        text-overflow: ellipsis;
        padding-top: 10%;
        z-index: 100;
        transition: all linear 0.3s;
      }
      #product-list.fixed {
        position: fixed !important;
        padding-top: 0;
        top: 0;
      }
      #product-list li {
        overflow: hidden;
        text-overflow: ellipsis;
      }
      #product-list li a {
        display: block;
        color: #000;
        padding: 8px 0 8px 16px;
        text-decoration: none;
      }
      #product-list li a:hover:not(.active) {
        background-color: #555;
        color: white;
      }
      #nav {
        line-height: 30px;
        background-color: #eeeeee;
        height: 300px;
        width: 100px;
        float: left;
        padding: 5px;
      }
      #section1 {
        width: 90%;
        height: auto;
        overflow: hidden;
        margin: 0 auto;
        text-align: center;
      }
      #section1 img {
        width: 100%;
        height: auto;
        opacity: 1;
        transition: opacity 0.5s linear;
      }
      #section3 {
        width: 90%;
        margin: 0 auto;
        text-align: center;
        /*float:left;
          padding:10px;*/
        margin-bottom: 2%;
      }
      #section2 {
        width: 50%;
        height: auto;
        margin-top: 5%;
        margin-bottom: 5%;
        margin-left: auto;
        margin-right: auto;
        text-align: left;
        /*float:left;*/
        text-align: justify;
        text-justify: inter-word;
      }
      .centerer {
        text-align: center;
      }
      #section5 {
        width: 90%;
        height: auto;
        margin-top: 5%;
        margin-bottom: 5%;
        margin-left: auto;
        margin-right: auto;
        text-align: center;
        vertical-align: middle;
        margin-left: 10%;
      }
      img {
        max-width: 100%;
        max-height: 100%;
      }
      .container {
        width: 70%;
        margin: 10px auto;
        position: relative;
        text-align: center;
      }
      .block {
        height: auto;
        width: auto;
        display: inline-block;
        margin: 2%;
        vertical-align: middle;
        padding-left: 2%;
        padding-right: 2%;
        font-size: 1.2em;
      }
      .floating-product {
        display: inline-block;
        width: 20%;
        height: 20%;
        /*border: 3px solid #565656;*/
        padding: 1%;
        margin: 0 auto;
        margin-top: 2%;
        margin-bottom: 2%;
        text-align: center;
        vertical-align: middle;
      }
      .floating-product img {
        margin: 0 auto;
        max-width: 100%;
        max-height: 100%;
        display: block;
      }
      .floating-product a {
        color: #000;
      }
      .floating-product a:hover {
        color: #565656;
      }
      .block a {
        color: #000;
      }
      .block a:hover {
        color: #565656;
      }
      #footer {
        background-color: #565656;
        color: white;
        overflow: auto;
        /*clear: both;*/
        text-align: left;
        padding: 1% 5%;
        height: 10%;
        vertical-align: middle;
        position: relative;
        z-index: 999;
      }
      hr {
        width: 70%;
      }
      h1 {
        text-align: left;
        font-size: 1.5em;
        margin-left: 11%;
      }
      .margin {
        margin-left: 11%;
      }
      span {
        background: transparent;
      }
      table {
        margin-top: 5%;
      }
      .tg {
        border-collapse: collapse;
        border-spacing: 0;
        width: 99%;
        margin: 0 auto;
        font-size: 1.1em;
        font-weight: 100;
      }
      .tg td {
        padding: 5px 10px;
        border-style: none;
        border-width: 1px;
        overflow: hidden;
        word-break: normal;
        font-weight: 100;
      }
      .tg th {
        font-weight: 100;
        padding: 5px 10px;
        border-style: none;
        border-width: 1px;
        overflow: hidden;
        word-break: normal;
      }
      .tg .tg-lqy6 {
        text-align: right;
        vertical-align: top;
        padding-right: 3%;
      }
      .tg .tg-yw4l {
        vertical-align: top;
        text-align: left;
        padding-left: 3%;
      }
      a.fancybox img {
        border: none;
        box-shadow: 0 1px 7px rgba(0, 0, 0, 0.6);
        -o-transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        -o-transition: all 0.2s ease-in-out;
        -ms-transition: all 0.2s ease-in-out;
        -moz-transition: all 0.2s ease-in-out;
        -webkit-transition: all 0.2s ease-in-out;
        transition: all 0.2s ease-in-out;
      }
      a.fancybox:hover img {
        position: relative;
        z-index: 999;
        -o-transform: scale(1.03, 1.03);
        -ms-transform: scale(1.03, 1.03);
        -moz-transform: scale(1.03, 1.03);
        -webkit-transform: scale(1.03, 1.03);
        transform: scale(1.03, 1.03);
      }
      .imager {
        display: inline-block;
        width: 15%;
        height: 10%;
        padding: 1%;
        margin: 0 auto;
        margin-top: 2%;
        margin-bottom: 2%;
        text-align: center;
        vertical-align: middle;
      }
      .imager img {
        margin: 0 auto;
        max-width: 100%;
        max-height: 100%;
        display: block;
      }
      .black a {
        float: right;
        color: #000
      }
      .black a:hover {
        color: #565656;
      }
      &#13;
      &#13;
      &#13;