元素具有多行文本,如何将它们向上溢出

Element with multiple lines of text, how can I overflow them upwards?

本文关键字:溢出 文本 元素      更新时间:2023-09-26

http://jsbin.com/dodiha/1/edit?html,css,js,输出

因此,基本上我有一个"日志"元素来显示最近的消息。默认情况下,它是折叠的,只有1行高。你可以将鼠标悬停在它上面使它更高。关键是它被锚定在页面的底部。当我附加文本时,我希望看到它,而不是第一行。

这就是它的样子:

---------------
| first line  |  visible
---------------
| second line |  hidden
| third  line |  hidden

这就是我想要的样子:

| first  line |  hidden
| second line |  hidden
---------------
| third line  |  visible
---------------

我试过"垂直对齐"的每一种变体,希望它能正确地定位文本。很明显,我可以进行prepend而不是append,它适用于折叠的视图,但当我展开日志窗口时,消息是按相反的时间顺序排列的。把它想象成一个命令提示符,最新的消息在底部,顶部的消息消失,但你可以向上滚动查看历史记录。

function log(m) {
  $('#log').append('<div>' + m + '</div>')
}
  
$("#add").on('click',function() {
  log("New Entry Added...")
})
$('#log').hover(
  function() {
        $('#log').animate({"height":"200px"})
  },
  function() {
    $('#log').animate({"height":"30px"})
  }
)
$(document).ready(function() {
  log('Document Ready.')
  
})
#log {
  position: absolute;
  bottom: 100px;
  left: 5px; right: 5px;
  background-color: lightgray;
  height: 30px;
  line-height: 30px;
  font-size: 20px;
  padding-left: 10px;
  overflow: hidden;
  float: bottom;
}
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
<div id="log"></div>
<button id="add">Add Entry</button>

这里有一个简单的方法,可以实现最小的代码更改

演示http://jsfiddle.net/zwvgfkjo/

HTML:

  <div id="log">
    <div class="wrapper">
    </div>
  </div>
  <button id="add">Add Entry</button>

CSS:

.wrapper {
    position: absolute;
    left: 0;
    bottom: 0;
}
#log {
  position: absolute;
  bottom: 100px;
  left: 5px; right: 5px;
  background-color: lightgray;
  height: 30px;
  line-height: 30px;
  font-size: 20px;
  padding-left: 10px;
  overflow: hidden;
  float: bottom;
}

JS:

function log(m) {
  $('#log .wrapper').append('<div>' + m + '</div>');
}
$("#add").on('click',function() {
  log("New Entry Added...")
})
$('#log').hover(
  function() {
    $('#log').animate({"height":"200px"})
  },
  function() {
    $('#log').animate({"height":"30px"})
  }
)
$(document).ready(function() {
  log('Document Ready.')
})

试试这个:

<div id="log-wrapper">
  <div id="log"></div>
</div>
#log {
  position: absolute;
  bottom: 0;
}

function log(m) {
  $('#log').append('<div>' + m + '</div>')
}
  
$("#add").on('click',function() {
  log("New Entry Added...")
})
$('#log-wrapper').hover(
  function() {
        $('#log-wrapper').animate({"height":"200px"})
  },
  function() {
    $('#log-wrapper').animate({"height":"30px"})
  }
)
$(document).ready(function() {
  log('Document Ready.')
  
})
#log-wrapper {
  position: absolute;
  bottom: 100px;
  left: 5px; right: 5px;
  background-color: lightgray;
  height: 30px;
  line-height: 30px;
  font-size: 20px;
  padding-left: 10px;
  overflow: hidden;
  float: bottom;
}
#log {
  position: absolute;
  bottom: 0;
}
<script src="//code.jquery.com/jquery-2.1.1.min.js"></script>
<div id="log-wrapper">
  <div id="log"></div>
</div>
<button id="add" type="button">Add Entry</button>