代码之家  ›  专栏  ›  技术社区  ›  Ayan

使文本列表位于页脚上方,但能够在合成栏下方滚动

  •  1
  • Ayan  · 技术社区  · 7 年前

    我试图滚动一个消息列表,使其位于撰写栏下方,但当添加新消息时,它们应该添加到撰写栏的正上方。要快速演示我的意思,请参见下面的图片 link .

    • 我无法根据内容大小控制内部div元素的宽度。

    .contentContainer {
      margin: 0;
      padding: 0;
      margin-top: 68px;
      height: calc(100vh - 68px);
      display: block;
      overflow-y: auto;
    }
    
    .content {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      height: inherit;
    }
    
    .messageArea {
      flex-grow: 1;
      /*min-width: 400px;*/
      height: inherit;
      position: relative;
    }
    
    .scrollingMessagesList {
      height: inherit;
      overflow-x: hidden;
      overflow-y: auto;
      transform: translateZ(0);
    }
    
    .outer {
      margin: 0 auto;
      margin-top: 18px;
      margin-bottom: 142px;
      height: 414px;
      position: relative;
      background-color: #78909c;
    }
    
    .inner {
      margin: 0 20px;
      height: inherit;
      background-color: darkkhaki;
      display: flex;
      flex-direction: column-reverse;
      align-items: flex-end;
    }
    
    .inner p {
      width: auto;
      max-width: 100%;
      outline: none;
      padding-bottom: 2px;
      background-color: greenyellow;
    }
    
    .composeBar {
      z-index: 1029!important;
      border: none;
      bottom: 20px;
    }
    
    .compose {
      height: 52px;
      border-radius: 26px;
      background-color: white;
      box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .16), 0 4px 4px 0 rgba(0, 0, 0, .10), 0 3px 3px 0 rgba(0, 0, 0, .08);
      ;
    }
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
    <div class="container-fluid contentContainer" style="background-color: blanchedalmond;">
      <div class="content">
        <div class="messageArea">
          <div class="scrollingMessagesList">
            <div class="outer">
              <div class="inner">
                <p>Text 1</p>
                <p>Text 2</p>
                <p>Text 3</p>
              </div>
            </div>
          </div>
          <div class="composeBar navbar-fixed-bottom">
            <div class="compose">
            </div>
          </div>
        </div>
      </div>
    </div>
    1 回复  |  直到 7 年前
        1
  •  1
  •   Anmol Sandal    7 年前

    在这里,你可以检查我是否更新了你的代码,如果有帮助,请查看。

    $(document).ready(function() {
      function setHeight() {
        windowHeight = $(window).outerHeight();
        $('.inner').css('min-height', windowHeight - 68);
      };
      setHeight();
      
      $(window).resize(function() {
        setHeight();
      });
    });
    .contentContainer {
      margin: 0;
      padding: 0;
      display: block;
      overflow-y: auto;
      margin-top: 68px;
      height: calc(100vh - 68px);
    }
    
    .content {
      display: flex;
      flex-direction: row;
      flex-wrap: nowrap;
      height: inherit;
    }
    
    .messageArea {
      flex-grow: 1;
      /*min-width: 400px;*/
      height: inherit;
      position: relative;
    }
    
    .scrollingMessagesList {
      height: inherit;
      overflow-x: hidden;
      overflow-y: auto;
      transform: translateZ(0);
    }
    
    .outer {
      margin: 0 auto;
      position: relative;
      background-color: #78909c;
    }
    
    .inner {
      margin: 0 20px;
      height: auto;
      background-color: darkkhaki;
      display: flex;
      flex-direction: column;
      justify-content: flex-end;
      padding-bottom: 60px;
      align-items: flex-end;
    }
    
    .inner p {  
      width: auto;
      max-width: 100%;
      outline: none;
      padding-bottom: 2px;
      background-color: greenyellow;
      
    }
    
    .composeBar {
      z-index: 1029!important;
      border: none;
      bottom: 5px !important;
      position: fixed;
    }
    
    
    .compose {
        height: 52px;
        border-radius: 26px;
        background-color: white;
        box-shadow: 0 1px 5px 0 rgba(0, 0, 0, .16), 0 4px 4px 0 rgba(0, 0, 0, .10), 0 3px 3px 0 rgba(0, 0, 0, .08);
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
    <div class="container-fluid contentContainer" style="background-color: blanchedalmond;">
      <div class="content">
        <div class="messageArea">
          <div class="scrollingMessagesList">
            <div class="outer">
              <div class="inner">
                <p>Text 1</p>
                <p>Text 2</p>
                <p>Text 3</p>
                <p>Text 4</p>
                <p>Text 5</p>
                <p>Text 6</p>
                <p>Text 7</p>
               <p>Text 7</p>
              </div>
            </div>
          </div>    
          <div class="composeBar navbar-fixed-bottom">
             <div class="compose">
             </div>
          </div>
        </div>
      </div>
    </div>