文本溢出显示省略号时展示‘查看更多‘按钮

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>文本溢出显示省略号时展示'查看更多'按钮</title>
  <style>
    .content {
      width: 400px;
      font-size: 14px;
      line-height: 20px;
      max-height: 80px;
      overflow: hidden;
      position: relative;
      text-align: justify;
    }
    .virtual {
      position: absolute;
      top: -20px;
      left: 0;
      right: 0;
      overflow: hidden;
      color: transparent;
      /** 文字两端对齐 */
      text-align: justify;
    }
    .more {
      position: absolute;
      top: 80px;
      right: 0;
      font-size: 14px;
      cursor: pointer;
      background-color: white;
      color: #484848;
    }
    .light {
      color: #296eff;
    }
  </style>
</head>

<body>
  <div class="content" id="content">
    测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
    <div class="virtual" id="virtual">
      测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试测试
      <span class="more" id="more"><span id="dot">...</span><span class="light" id="light">更多</span></span>
    </div>
  </div>
</body>

<script>
const oMore = document.getElementById('more');
const oContent = document.getElementById('content');
const oVirtual = document.getElementById('virtual');
const oLight = document.getElementById('light');
const dot = document.getElementById('dot');

oMore.addEventListener('click', this.moreEvent);

/** 用于判断状态 */
let flag = true

function moreEvent () {
  flag ? dealWithStyle('none', 'auto', '收起', '0px', 'none', false) : dealWithStyle('80px', '80px', '更多', '-20px', 'inline-block', true);
  flag = !flag
}

function dealWithStyle (maxHeight, top1, text, top2, display, flag) {
  oContent.style.maxHeight = maxHeight
  oMore.style.top = top1
  oLight.innerText = text
  oVirtual.style.top = top2
  dot.style.display = display
}

</script>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值