zoukankan      html  css  js  c++  java
  • JS文本中间显示省略号

    众所周知,文本溢出显示省略号用CSS就可以:

    单行文本:

    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
    display:block;

    多行文本:

    overflow : hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;

    如果想中间显示省略号呢??

    现在需求是,一段文本很长,但最后有一个关键词很重要,而且改关键词有括号括起来的,需要显示出来,所以如果文本过长,不单只做省略号处理,还要把括号里面的内容显示出来。

    // 中间显示省略号,截取显示括号内容
    var str = $(".text").text();
    var last = 0;
    var all = str.length;
    var fisrt = str.substring(0,6);
    // 没有中文括号(
    if (str.lastIndexOf('(') == -1) {
        // 也没有英文括号(
        if (str.lastIndexOf('(') == -1) {
            last = all - 5;
        }else{
            // 有英文括号(,就从英文括号开始截取
            last = str.lastIndexOf('(');
        }
    }else{
        last = str.lastIndexOf('(');
    }
    // 如果长度大于13个字符才显示省略号
    if (all > 13) {
        $(".text").text(fisrt+" ... "+str.substring(last,all));
    }

    上面的代码意思是:如果文本长度大于13个字符、文本内包含中文或英文括号就会截取括号到最后一个字符的内容,默认截取前6个字符跟省略号...拼接起来,得到最终的中间省略号,前面6个字,后显示括号内容的效果。

    最后:

    网上看了好像css没有显示前面跟后面并且中间显示省略号的属性,所以用js截取拼接得到对应的效果。

  • 相关阅读:
    141. Linked List Cycle
    2. Add Two Numbers
    234. Palindrome Linked List
    817. Linked List Components
    《算法图解》之快速排序
    C++-对象指针的滥用
    C++学习书籍评价
    C++-随机数的产生
    Java-重载和重写区别剖析
    Qt- 图形界面应用程序的运行模式
  • 原文地址:https://www.cnblogs.com/zhengshize/p/8297612.html
Copyright © 2011-2022 走看看