亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用js顯示固定長度內容顯示,默認狀態顯示3行文本,點擊按鈕顯示更多

如何使用js顯示固定長度內容顯示,默認狀態顯示3行文本,點擊按鈕顯示更多

茅侃侃 2019-03-06 13:08:48
有這么個需要,列表中顯示內容,默認顯示3行文字,文本內容超出3行文字,顯示展開/收起箭頭當前的實現是截取固定長度的文本,使之最多顯示三行,現在遇到一個問題是,文本長度相同,文本全是中文 和 不全是中文 所顯示的行數是不同,有沒有什么好的方式可以適應我現在想到的一個笨方法是,逐個字符判斷,如果是中文的長度+2,如果是非中文的長度+1,然后在根據總數來截取不同的長度PS:本方法只是個想法,還未進行驗證環境要求:最低支持IE8
查看完整描述

3 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

我以前做過類似的,方法是固定顯示2行的高度,用一個標簽(text為展開)固定顯示在右下角遮住原有的文字。JS控制點擊標簽改變文字容器高度


查看完整回答
反對 回復 2019-03-12
?
蠱毒傳說

TA貢獻1895條經驗 獲得超3個贊

需要配置JS來判斷文字內容是否超過設定的容器的初始高度,如果超過就設置折疊的CSS否者不設置


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Title</title>

    <style>

        .container{

            position: absolute;

            left:10px;

            right:10px;

            width: 200px;

            border: 1px solid red;

            position: relative;

        }


        .content{

            font-size: 16px;

            line-height: 1.5;

            width: 100%;

            color: #556170;

            word-break: break-all;

            text-align: justify;

            margin: 0;

            position: relative;

        }


        .collapse .content::after{

            content: ' ... ';

            position: absolute;

            right: 0;

            bottom: 0;

            background: linear-gradient(to right, transparent, #ffffff 50%);

            padding-left: 20px;

        }


        .collapse .expand-collapse::after{

            content: '展開';

            display: block;

            color:red;

            width: 100%;

            text-align: right;

        }


        .expand .expand-collapse::after{

            content: '收縮';

            display: block;

            color:red;

            width: 100%;

            text-align: right;

        }


        .collapse .content{

            overflow: hidden;

            height: 50px;

            padding: 0;

            margin: 0;

        }

    </style>

</head>

<body>


<div class="container">

    <p class="content ">當前的實現是截取固定長度的文本,使之最多顯示三行,現在遇到一個問題是,文本長度相同,文本

        全是中文 和 不全是中文 所顯示的行數是不同,有沒有什么好的方式可以適應</p>

    <div class="expand-collapse"></div>

</div>

<script>


    var expandCollapseDiv;

    var containerBoundingClientRect=document.querySelector(".container").getBoundingClientRect();

    var contentBoundingClientRect=document.querySelector(".content").getBoundingClientRect();

    if(containerBoundingClientRect.height>50){

        document.querySelector(".container").setAttribute("class","container collapse");

    }else{

        document.querySelector(".container").setAttribute("class","container");


        document.querySelector(".container").removeChild(document.querySelector(".expand-collapse"))

    }



    document.querySelector(".container").addEventListener("click",function(){


        if(!expandCollapseDiv){

            expandCollapseDiv=document.querySelector(".expand-collapse");

        }

        console.log(event.target);

        if(event.target===expandCollapseDiv){

            if(document.querySelector(".container").getAttribute("class").split(" ").indexOf("collapse")!==-1){

                document.querySelector(".container").setAttribute("class","container expand");

            }else{

                document.querySelector(".container").setAttribute("class","container collapse");

            }


        }

    },false);

</script>

</body>

</html>


查看完整回答
反對 回復 2019-03-12
  • 3 回答
  • 0 關注
  • 3556 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號