아래에서는 너무 긴 기사의 전문을 클릭하여 읽을 수 있는 기능을 구현한 Vue의 예를 공유하겠습니다. 참고할 만한 가치가 있어 모두에게 도움이 되기를 바랍니다.
코드로 직접 이동하세요:
<p class="bodyFont clearfloat" id="bodyFont" ref="bodyFont" :class="{bodyHeight:contentStatus}"> <p v-html="content"></p> </p> <p class="contentToggle" v-if="contentStatus" @click="contentStatus=!contentStatus">阅读全文</p>
.bodyFont{ .font-dpr(16px); color: #333; text-align: left; line-height:58px; word-break:break-all; word-wrap:break-word; padding-bottom: 30px; height:auto; overflow: hidden; max-height: 100%; p{margin:16px 0 0 0;} } .bodyHeight{ height:5000px; } .contentToggle{ height:60px; line-height:60px; text-align: center; color:@red; border:1px solid @red; border-radius: 5px; .font-dpr(14px); margin-bottom:30px; }
data(){ return { contentStatus:false, curHeight:0, bodyHeight:5000 } }, mounted(){ setTimeout(()=>{ this.contentToggle(); },500) }, methods:{ contentToggle(){ this.curHeight=this.$refs.bodyFont.offsetHeight; if(this.curHeight>this.bodyHeight){ this.contentStatus=true; }else{ this.contentStatus=false; } }, }
구현 아이디어 및 포인트 참고 사항:
1. 콘텐츠의 높이를 얻으려면 DOM이 로드될 때까지 기다린 다음 실제로 얻을 수 있는지 확인하기 위해 setTimeout 함수를 추가해야 합니다. 콘텐츠의 높이가 표시하도록 설정한 높이보다 높은 경우 표시하려는 높이로만 제한하고 클래스를 추가하여 문제를 해결한 후 Overflow: Hidden에 주의하세요.
위 내용은 제가 편집한 것입니다. 여러분, 앞으로 모든 분들께 도움이 되었으면 좋겠습니다. 관련 기사:Vue-cli에서 별도 페이지의 배경색을 설정하는 방법
자세한 설명 vue 프로젝트에 elementUI 구성 요소 소개
위 내용은 Vue에서 전체 텍스트를 읽는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!