想着“显示更多”按钮的多行文本截断
时间:2023-04-05 21:13:22
HTML5
鏈€杩戞濂介亣鍒拌繖涓皬闇€姹傘€傝寰楀緢涔呬互鍓嶇敤JS鏉ュ鐞嗚繃銆傛瘯绔燂紝閭f椂鐨勬垜骞村皯鏃犵煡銆傚垏鎹㈢被鐨勬搷浣滃彲浠ョ敤Checked浼被鏉ュ疄鐜帮紝鎴愭湰浼氭瘮杈冧綆锛屽厛鍒椾竴涓嬪嚱鏁扮殑瑕佺偣锛氬琛屾枃瀛楁埅鏂紝鏄剧ず鐪佺暐鍙枫€傗€滄樉绀烘洿澶氣€濇寜閽彲浠ュ睍寮€鎵€鏈夋枃鏈€傚睍寮€鏂囨湰鍚庯紝鎸夐挳鐨勬枃鏈彂鐢熷彉鍖栥€傗€淐ollapseText鈥濇寜閽嚭鐜扮殑鏉′欢鏄綋鏂囨湰琚埅鏂椂锛堝鏋滀綘鐨勬枃鏈彧鏈変竴琛岋紝鍒欎笉闇€瑕佹樉绀哄畠馃槗锛夐棶棰橈細text-overflow:ellipsis涓嶆敮鎸佸琛屾埅鏂€傛寜閽枃瀛楀垏鎹紝css濡備綍鍒囨崲鏂囧瓧锛熷浣曞垽鏂寜閿瑙傜姸鍐碉紵涓嬮潰鎴戜細涓€涓€璁茶В馃巿澶氳鏂囨湰鎴柇鍋囪鐜版湁鐨凥TML缁撴瀯濡備笅锛?divclass="box">
Textcontent
濡傛灉闇€瑕佹埅鏂竴涓崟琛岋紝涓€鑸柟娉曟槸锛歱{text-overflow:ellipsis;婧㈠嚭锛氶殣钘忥紱white-space:nowrap;}鏁堟灉濡備笅锛氬琛屾枃瀛楅渶瑕佷娇鐢╨ine-clamp锛屽畾涔夋埅鏂枃瀛楃殑琛屾暟锛歱{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient锛氬瀭鐩达紱overflow:hidden;}鏁堟灉濡備笅锛歜uttonclickshowsalltextnowHTMLstructure杞崲濡備笅锛?divclass="box">
鏂囨湰鍐呭
鏄剧ず鏇村 鐩戝惉鎸夐挳鐨勭偣鍑昏涓轰娇鐢ㄤ簡鎻愬埌鐨凜hecked浼被鏂囩珷寮€澶达細input[name="toggle"]:checked{&+p{-webkit-line-clamp:unset;}}杩欐牱锛屽綋鐢ㄦ埛鐐瑰嚮锛堥€変腑锛夋椂锛屾墍鏈夌殑鏂囧瓧閮戒細鏄剧ず鍑烘潵锛屽鏋滄病鏈夐€変腑锛屾枃瀛椾細鎶樺彔璧锋潵锛氭寜閽枃瀛楀姩鎬佸悎鐞嗐€傛樉绀烘墍鏈夋枃瀛楀悗锛屾寜閽枃瀛楄鍒囨崲涓衡€滄敹璧锋枃瀛椻€濓紝濡備綍鐢–SS淇敼鏂囧瓧锛屽叾瀹炲氨鏄埄鐢ㄤ吉鍏冪礌鐨勫唴瀹广€傚幓鎺塇TML涓殑鏂囨湰锛岀劧鍚庣敤CSS鎺т欢鏇挎崲锛?labelfor="toggle">label{&::after{content:"Showmore";}}鍚岀悊鍙緱锛歩nput[name="toggle"]:checked{&~label{&::after{content:"Collapsetext";鏁堟灉濡備笅锛氬鏋滄寜閽牱寮忎笐锛岄偅灏辫嚜宸辫皟鏁答煒撴寜閽嚭鐜扮殑鏉′欢鏄綋鏂囧瓧灏戜簬涓夎鏃讹紝鎸夐挳涓嶅簲璇ュ嚭鐜帮紝鍥犱负娌″繀瑕侊細澶ч棶棰橈紝涓婄綉鏌ヤ簡涓€涓嬶紝鍙戠幇娌℃湁浼被鍙互鍒ゆ柇鏂囨湰鏄惁琚埅鏂紝濡傛灉鏄紝鎴戜滑鍙互杩欐牱锛歱{&:truncated{&+label{鏄剧ず锛氬牭濉?}}}label{display:none;}truncated琛ㄧず鎴柇銆備絾鍗充究濡傛锛屾垜浠殑闇€姹備篃鏃犳硶瀹炵幇锛屽洜涓哄綋浣犳樉绀烘墍鏈夋枃瀛楁椂锛屼綘鐨勬枃瀛椾笉浼氳鎴柇锛屾墍浠ユ寜閽細娑堝け锛氫互涓婃槸涓€娈礘S瀹炵幇鐨勬ā鎷熸晥鏋滐紝婧愮爜濡備笅:letlist=document.querySelectorAll("p");letobserver=newResizeObserver(entries=>{entries.forEach(item=>{item.target.classList[item.target.scrollHeight>item.contentRect.height?"娣诲姞":"鍒犻櫎"]("鎴柇");});});list.forEach(p=>{observer.observe(p);});鍘熺悊灏辨槸鐩戝惉鏂囨湰鍏冪礌鐨勫ぇ灏忓彉鍖栵紝鐒跺悗鍔ㄦ€佸鍔爐runcatedclassname馃槀鎵€浠ワ紝浣燙SS涓殑truncated浼被搴旇鏀规垚truncatedclass馃槗p{&.truncated{&+label{鏄剧ず锛氬潡锛涙垜浠笇鏈涘湪鍒囨崲鐨勬椂鍊欙紝鎸夐挳涓€鐩村湪锛岃€屼笉鏄湪鏂囨湰娌℃湁琚埅鏂殑鏃跺€欐寜閽笉鏄剧ず锛岃繖鏍锋垜浠氨涓嶉渶瑕佷竴鐩寸洃鍚枃鏈厓绱犵殑澶у皬鍙樺寲锛屾垜浠彧闇€瑕佷竴涓垵濮嬪€硷紙鍒濆鍖栨枃鏈椂鏄惁鎴柇鏂囨湰锛夛紝鍗冲彧鐩戝惉涓€娆★紒entries.forEach(item=>{//...鍘熶唬鐮乷bserver.unobserve(item.target);//绉婚櫎鐩戣鍣▆);鎴栬€呬綘鏍规湰涓嶉渶瑕佺敤杩欎釜API锛岀洿鎺ュ垵濮嬪寲椤甸潰鐨勬椂鍊欙紝閬嶅巻鍒ゆ柇灏辫浜嗭紒璁﹍ist=document.querySelectorAll("p");list.forEach(item=>{item.classList[item.scrollHeight>item.offsetHeight?"add":"remove"]("truncated");});,P鍏冪礌鍦ㄩ〉闈㈠垵濮嬪寲鏃讹紝浼氳嚜鍔ㄦ坊鍔犳埅鏂殑绫诲悕锛屾寜閽彲浠ヤ竴鐩存樉绀猴細姣斿鍙互鑷畾涔夋寜閽牱寮忥紝鍦ㄥ簳閮ㄦ坊鍔犻€忔槑娓愬彉閬僵锛岃繃娓℃椂浜ゆ崲鏁堟灉馃榿鎬荤粨Checked浼被鏄釜濂戒笢瑗匡紝涓嶇敤鍐橨S灏卞彲浠ユ弧瓒冲緢澶氶渶姹傦紝鎵€浠ュ彲浠ヨ€冭檻鐢ㄥ畠鏉ヨ繘琛屼换浣曞垏鎹㈢被鐩稿叧鐨勬搷浣溿€傚鏋滆寰楄繖绡囨枃绔犱笉閿欙紝璇蜂笉瑕佸繕璁扮偣璧炲叧娉ㄥ摝~馃槉浜ゆ祦寰俊鍏紬鍙封€滃墠绔畤瀹欐儏鎶ュ眬鈥濓紝浼氫笉瀹氭椂鏇存柊鏈€鏂板疄鐢ㄧ殑鍓嶇鎶€宸?鎶€鏈枃绔犳椂闂淬€傚浜嗭紝鍋跺皵杩樹細鏈夌綉缁滆叮浜嬸煃诲叧娉ㄥ叕浼楀彿锛屽洖澶嶁€?鈥濊幏鍙栫兢鑱婁簩缁寸爜锛屼竴璧峰涔狅紝涓€璧蜂氦娴侊紝涓€璧烽挀楸拣煂?/p>