javascript - 调整无序列表上聊天气泡的大小

标签 javascript jquery css list chat

我有一个用作聊天平台的无序列表。用户将每条“消息”附加到列表后,我会在它后面显示一个聊天气泡,但是,聊天气泡的大小与附加的每条消息保持相同,这意味着如果消息包含一定数量的字符,它出现在气泡之外。有没有办法让聊天气泡根据消息的大小自行调整大小?最好在大约 25 个字符之后,我希望消息开始一个新行,并且气泡的高度会扩大。另一方面,如果一条消息只有 5 个字符长,聊天气泡会调整大小以适应它。

这里有一张图片来说明问题:http://imgur.com/uzzjpQw

这是我的 Jquery/Javascript

 $('#submit').click(function(){
  var message = $('#typetextbox').val();
  if (message.replace(/ /g, '')){
      var positions = makeNewPosition();
      var el = $('<li>'+message+'</li>');
      el.attr('gridpos', positions[0].toString()+"x"+positions[1].toString())
      el.css('left', positions[1] * window.li_width);
      el.css('top', positions[0] * window.li_height);
      $('#messagebox').append(el);


      setTimeout(function() {
          el.fadeOut();
          var gridpos = el.attr('gridpos');
          delete window.grid[gridpos];
      }, 4000 );


  }
  $("#typetextbox").val("");
});

});
 window.grid = {};
window.li_height = 20;
window.li_width = 200;
function makeNewPosition(){


var h = Math.floor($(window).height()/window.li_height);
var w = Math.floor($(window).width()/window.li_width);

var nh = Math.floor(Math.random() * h);
var nw = Math.floor(Math.random() * w);
var gridpos = nh.toString() + "x" + nw.toString();
if(typeof window.grid[gridpos] == 'undefined'){
    return [nh,nw];
}else{

    return makeNewPosition();
}

这是我的 CSS:

li{
height: 24px;
width: 220px;
margin: 2px;
padding: 5px;
position: absolute;
z-index: -2;
font-family: Verdana, Geneva, sans-serif;
color: #FFF;
background-image: url(Images/chat-bubble-left-flick.png);
background-repeat: no-repeat;
background-position: -25px center;

}

ul{
list-style:none;
}

很抱歉提供了很多代码,但我不确定我的问题出在哪里。我假设它是在 Javascript 中更正而不是使用背景图像?感谢您的帮助。

最佳答案

height: 24px; 是这个原因,用min-height: 24px; 代替。

position: absolute; 是必需的吗?

关于javascript - 调整无序列表上聊天气泡的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25235361/

相关文章:

javascript - 使用 testcafe 在 Javascript 中断言数组列表

javascript - Jquery 输入字段求和奇怪的结果

onkeyup 的 Javascript 问题

javascript - 我可以使用 AngularJs 指令将样式应用于伪元素吗

css - 我如何从 reactjs 中的 webpack 在我的元素中添加 Bootstrap css 和 js 文件以及我在 webpack 配置文件中添加什么?

javascript - 将文本分配给字符串内的变量

Javascript 冰雹序列

javascript - 如何在 Windows 8 模板中为元素添加新类?

javascript - 电话间隙 : Custom URL handling freezing

javascript - 用什么代替返回 bool 值