国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

省略文字,動態(tài)行,查看更多顯示全部 組件

這篇具有很好參考價值的文章主要介紹了省略文字,動態(tài)行,查看更多顯示全部 組件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

備注:

  1. 使用 TypeScriptReact的函數(shù)式組件語法。此組件的目的是顯示文本,如果文本內(nèi)容超出了指定的行數(shù),它將顯示一個“查看更多”的按鈕。
  2. 當(dāng)用戶點擊這個按鈕時,將展示全部的文本內(nèi)容。組件使用了自定義的鉤子
    useBoundingClientRect 來確定是否需要顯示這個按鈕
//index.tsx文件
import type { FC, JSX } from 'react';
import { Fragment, useState } from 'react';
import type { StandardProps } from '@tarojs/components';
import { Image, Text, View } from '@tarojs/components';

import iconDropDown from '@/assets/icons/icon-dorpdown-primary.svg';
import useBoundingClientRect from '@/hooks/useBoundingClientRect';

import './index.less';

interface EllipsisProps {
  rows?: number;
  /**
   * 收起節(jié)點
   */
  foldRender?: JSX.Element;
  /**
   * 是否顯示收取按鈕
   */
  showFold?: boolean;
  /**
   * 展開節(jié)點
   */
  unfoldRender?: JSX.Element;
  /**
   * 是否顯示展開按鈕
   */
  showUnfold?: boolean;
  onChange?: (val: boolean) => void;
}

const Ellipsis: FC<EllipsisProps & StandardProps> = ({
  rows = 1,
  children,
  className,
  showUnfold,
  unfoldRender,
}) => {
  const [show, setShow] = useState(false);
  const [rectAssist] = useBoundingClientRect('#rectAssist', [children]);
  const [rectActual] = useBoundingClientRect('#rectActual', [children]);

  const style = {
    lineClamp: rows,
    webkitLineClamp: rows,
  };

  const showMoreBtn =
    !show &&
    showUnfold &&
    rectActual?.height &&
    rectAssist?.height &&
    Number(rectActual?.height) !== Number(rectAssist?.height);

  return (
    <Fragment>
      <View
        style={{ position: 'absolute', left: 0, top: -999999, opacity: 0 }}
        className={className}
        id="rectAssist"
      >
        {children}
      </View>

      <View
        className={`lineClamp__1 ${className}`}
        style={!show ? style : { display: 'block' }}
        id="rectActual"
      >
        {children}
        {!!showMoreBtn && (
          <View className="unfold-wrap" id="unfoldWrap" onClick={() => setShow(true)}>
            {unfoldRender || (
              <View className="unfold-btn">
                <Text>查看更多</Text>
                <Image src={iconDropDown} />
              </View>
            )}
          </View>
        )}
      </View>
    </Fragment>
  );
};

export default Ellipsis;

css樣式index.less

.lineClamp(@row) {
  display: -webkit-box;
  overflow: hidden;
  line-clamp: @row;
  -webkit-line-clamp: @row;
  -webkit-box-orient: vertical;
  position: relative;
}

.lineClamp__1 {
  .lineClamp(1);

  &::after {
    color: red;
    position: absolute;
    right: 0;
    bottom: 5px;
  }
}

.lineClamp__2 {
  .lineClamp(2);
}

.lineClamp__3 {
  .lineClamp(3);
}

.unfold-wrap {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  background: linear-gradient(to left, #fff, #fff, #fff, rgba(255, 255, 255, 0.4));
}

.unfold-btn {
  display: flex;
  flex-direction: row;
  align-items: center;
  min-width: 32px;
  padding: 4px 10px 4px 30px;
  line-height: 1;

  text {
    color: #b89962;
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 12px; /* 100% */
  }

  image {
    width: 13px;
    height: 12px;
  }
}

使用組件文章來源地址http://www.zghlxwxcb.cn/news/detail-794415.html

<View>
   <Ellipsis className={styles.name}>{'未知文字文字文字'}</Ellipsis> 
</View>

到了這里,關(guān)于省略文字,動態(tài)行,查看更多顯示全部 組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • css文本超長顯示省略號,鼠標(biāo)hover省略號展示全部內(nèi)容

    css文本超長顯示省略號,鼠標(biāo)hover省略號展示全部內(nèi)容

    有時候我們會發(fā)現(xiàn)鼠標(biāo)hover到文字省略號上,會展示出全部內(nèi)容,效果如下: 首先,文字過長展示省略號 再借助鼠標(biāo)懸停標(biāo)簽展示其 title 內(nèi)容的特性,為標(biāo)簽加上 title屬性,實現(xiàn)我們想要的效果 有關(guān) title 屬性的介紹:

    2024年02月11日
    瀏覽(31)
  • 6.溢出的文字省略號顯示

    6.溢出的文字省略號顯示

    必須滿足三個條件 【示例代碼】 多行文本溢出顯示省略號,有較大兼容性問題, 適合于webKit瀏覽器或移動端(移動端大部分是webkit內(nèi)核) 語法 : 【示例代碼】 更推薦讓后臺人員來做這個效果,因為后臺人員可以設(shè)置顯示多少個字,操作更簡單。 CSS的vertical-align屬性使用場

    2024年02月16日
    瀏覽(24)
  • 文字內(nèi)容超出兩行時顯示省略號

    設(shè)置內(nèi)容超出兩行顯示省略號的css樣式如下: 這個樣式可用于uniapp的微信小程序開發(fā)。

    2024年02月13日
    瀏覽(24)
  • js超過的文字用省略號顯示

    省略多余字符,用...顯示。 js方法: export function ellipsis(value, len) { ? if (!value) return \\\'\\\' ? if (value.length len) { ? ? return value.slice(0, len) + \\\'...\\\' ? } ? return value } css方法 1、文字超出一行,省略超出部分,顯示’…’,加寬度width屬來兼容部分瀏覽,用text-overflow:ellipsis屬性來。 ?

    2024年02月12日
    瀏覽(16)
  • vue3自定義指令實現(xiàn)超出顯示省略號,鼠標(biāo)浮入彈出title,顯示全部文本

    vue3自定義指令實現(xiàn)超出顯示省略號,鼠標(biāo)浮入彈出title,顯示全部文本

    mounted 和 updated 是 Vue 生命周期鉤子函數(shù),分別表示 指令掛載到元素 和 指令所在組件更新時觸發(fā) 。 el : HTMLElement 和 binding : DirectiveBinding 是方法參數(shù), el 表示指令作用的元素, binding 包含指令的綁定值、參數(shù)和修飾符等信息。 el.offsetWidth 獲取的是元素在渲染時所占據(jù)的整體

    2024年02月01日
    瀏覽(22)
  • vue+elementui 實現(xiàn)文本超出長度顯示省略號,鼠標(biāo)移上懸浮展示全部內(nèi)容

    表單內(nèi)的輸入框一般為固定寬度,當(dāng)輸入框內(nèi)容長度超出輸入框?qū)挾葧r,需要顯示省略號,并設(shè)置鼠標(biāo)移到輸入框上時懸浮展示全部內(nèi)容。 假如不生效 可以再前面在

    2024年02月12日
    瀏覽(33)
  • css 實現(xiàn)超出兩行、多行文字省略號顯示

    在我們?nèi)粘J褂梦淖殖鍪÷蕴栵@示,一般使用下面的方式實現(xiàn),但是當(dāng)有需求需要實現(xiàn)兩行乃至多行時,該怎么實現(xiàn)呢。 單行省略: 多行省略: ps:需要注意的是,記得控制元素width。

    2024年02月11日
    瀏覽(30)
  • flutter中文字長度溢出時如何顯示省略號?

    經(jīng)常在繪畫UI的時候遇到這種問題,依據(jù)場景不同,說下我自己的常用方案: 1. 第一種就是給Text標(biāo)簽外層嵌套一層Container,并指定width寬度 2.第二種是自動適配模式,我常用于Text外層嵌套了Row和Column以及一些布局控件中

    2024年02月15日
    瀏覽(32)
  • CSS:實現(xiàn)文字溢出顯示省略號且懸浮顯示tooltip完整信息

    CSS:實現(xiàn)文字溢出顯示省略號且懸浮顯示tooltip完整信息

    組件: element ui中的tooltip組件 思路:通過ref獲取寬度進(jìn)行判斷,當(dāng)子級寬度大于對應(yīng)標(biāo)簽/父級寬度顯示tooltip組件

    2024年02月09日
    瀏覽(31)
  • CSS設(shè)置文本不換行多余文字顯示省略號

    文章目錄 一、使用步驟 代碼如下(示例): 代碼如下(示例):

    2024年02月12日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包