vue實現展開全部,收起全部
1.給陣列的每一項新增是否展開或收起的標誌:‘toggleShowDes’和長度限制的標誌:‘ifMore’
/*獲取評論列表*/
getComment: function(flag){
var m = this;
if (!flag) {
m.conmontShow = false;
}
$.get('/subject/getComment',{id:m.topicItem.questionId,page:1},function(ret){
if (ret.errCode==0){
m.conmontShow = true;
var arr = ret.data.lists;
arr.forEach(function (v, i) {
if ($.inArray(zhentiListVm.userId, v.pointOfPraiseRecord) < 0) {
v.fabulous = false;
} else {
v.fabulous = true;
};
v.toggleShowDes = false;
v.ifMore=false;
});
setTimeout(function () {
$('.intro').each(function (i, v) {
if (arr[i].content.length > 44) {
console.log(123)
arr[i].ifMore=true
} else {
arr[i].ifMore=false;
console.log(456)
}
})
});
zhentiListVm.commentLists = arr;
zhentiListVm.userInfo = ret.data.users;
}else{
console.log(ret)
}
},'json')
},
2.根據內容判斷狀態
<div class="reply-comtent marginmain" v-if="item.toggleShowDes" :index="comIndex">
[[ item.content ]]
<div class="flex flex-align-center height4" @click="spread(item,comIndex,false)">
<div class="more-operation collect flex flex-align-center ">
<span>收起全部</span>
<img class="retract" src="/images/wrong/down.png" alt="" width="" height="">
</div>
</div>
</div>
<!--省略介紹-->
<div class="relative intro-wrap1 reply-comtent marginmain" v-else :index="comIndex">
<p :class="'font-text-shallow'+' '+ 'intro' + ' '+ (item.ifMore == true?'des1':'')">
[[ item.content ]]
</p>
<div class="flex flex-align-center height4" v-if="item.ifMore && !item.toggleShowDes" @click="spread(item,comIndex,true)">
<div class="more-operation open flex flex-align-center ">
<span>展開全部</span>
<img class="" src="/images/wrong/down.png" alt="" width="" height="">
</div>
</div>
</div>
3.點選展開和收起的函式
/*簡介展開*/
spread: function (item,index,targetState) {
console.log(index)
var self = this;
if(targetState) {
self.commentLists.forEach(function (v, i) {
console.log(i);
v.toggleShowDes=(i== index);
});
}else{
item.toggleShowDes=false;
}
}
4.css樣式
.des1, .des2 {
position: relative;
}
.des1 {
word-break: break-all;
height: .66rem;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
overflow: hidden;
}
.height4{height: .4rem}
.absolut{position: absolute}
/*.mores {
background-image: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, #ffffff 100%);
height: .66rem;
left: 0;
bottom: 0;
}*/
.more-operation-collect{
position: absolute;
height: 0.66rem;
color: #1facfc;
right: 12px;
}
.more-operation {
position: absolute;
height: 0.66rem;
color: #1facfc;
right: 12px;
/*padding-right: 127px;*/
}
.collect{ bottom: 2px;}
.open{ bottom: -12px;}
.more-operation span {
margin-right: 6px;
}
.retract {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
相關文章
- el-tree全部展開全部摺疊方法
- 文字超長,實現展開收起功能...
- JavaScript 實現全部選中與全不選JavaScript
- Vue 全家桶 + Express 實現的部落格(後端API全部自己手寫)VueExpress後端API
- DevOps 如何幫助實現安全部署dev
- LearnKu 社群 Wiki 功能全部開放
- JavaScript段落展開收起效果JavaScript
- 實現5G的全部潛力需要融合網路
- 陣列全部整理陣列
- 基於JQuery的自定義樹形選單表格,實現展開、收起效果jQuery
- 文章點選展開和收起詳解
- 否則GT的全部改動(全部在TX中)就沒有生效
- 突發奇想!藉助CSS自定義彩色字型來實現多行文字展開收起CSS
- 基於CPLD/FPGA的呼吸燈效果實現(附全部verilog原始碼)FPGA原始碼
- js中字串全部替換JS字串
- GopherChina 2020 全部 PPT 來了Go
- PHP外掛系統的實現(二):獲取全部外掛資訊PHP
- css3多行文字多行文字縮略點選更多展開顯示全部CSSS3
- 3000份水稻重測序資料全部公開
- WPF DataGrid開箱即用支援全部勾選的DataGridCheckBoxColumn
- 為什麼我們放棄使用Kafka Streams實現全部的事件溯源?-MateuszKafka事件
- iOS tableviewcell裡點選文字展開與收起功能iOSView
- 使用java的MultipartFile實現layui官網檔案上傳實現全部示例,java檔案上傳JavaUI
- js控制文字內容過多時候點選展開方式顯示全部內容demoJS
- C++引用全部知識點C++
- View Design 物料市場專案已全部適配 Vue.js 3ViewVue.js
- Web 安全部落格目錄Web
- 獲取標籤全部文字的方式
- JavaScript 替換字串全部指定內容JavaScript字串
- 【建議】通知,全部設定已讀
- Centos 7.1+CDH5.7.2全部署流程CentOSH5
- vue實現 可展開 且 可多選table 元件封裝Vue元件封裝
- Layer.js實現表格溢位內容省略號顯示,懸停顯示全部JS
- FairyGui--實現點選按鈕使UI欄開啟和收起AIGUI
- Cnetos7系統如何實時遮蔽國外全部訪問?
- 介面未全部提測,怎麼實現介面指令碼之間的自動化關聯?指令碼
- API 介面監控產品全新改版,免費開放全部功能API
- 直播app開發搭建,註冊頁面樣式,全部程式碼APP