当前位置:   article > 正文

Vue实现 展开 / 收起 功能_vue展开收起功能

vue展开收起功能

实现数据超过一定的量就显示 展开/ 收起 功能;如下图所示:

  

 参考代码:核心在于 计算属性 computed 中;

注意: 开发中key的值尽量不要使用下标 index;

  1. // template:循环的时候直接⽤showHandleList进⾏操作,显⽰收起的事件直接⽤showAll = !showAll 进⾏控制,改变这个值的真假
  2. <template>
  3. <div class="hello">
  4. <!-- 数据展示 -->
  5. <div v-for='(item, index) in showHandleList' :key="index">
  6. {{item}}
  7. </div>
  8. <div
  9. class="show-more"
  10. v-if="this.toLearnList.length > 3"
  11. @click="showAll = !showAll"
  12. >
  13. {{word}}
  14. <img
  15. class="score-img"
  16. :class="{ 'rotate-img': showAll }"
  17. src="../static/img/ic_zhankai.png"
  18. alt="logo"
  19. >
  20. </div>
  21. </div>
  22. </template>
  23. <script>
  24. export default {
  25. // ⾸先定义⼀下data⾥⾯的数据:
  26. data(){
  27. return {
  28. toLearnList:[ 'html','css','javascript','typescript','e-charts' ], //进⾏显⽰的数据
  29. howAll:false, // 控制 展示 / 收起 的标志
  30. }
  31. },
  32. // 使⽤computed对data进⾏处理:
  33. computed:{
  34. showHandleList(){
  35. if(this.showAll == false){ //收起状态-显示“展示”
  36. var showList = []; //定义⼀个空数组
  37. if(this.toLearnList.length > 3){ //控制显⽰前三个
  38. for(var i = 0;i < 3; i++){
  39. showList.push(this.toLearnList[i]) //将数组的前3条存放到showList数组中
  40. }
  41. }else{
  42. showList = this.toLearnList; //个数足够显示,不需要再截取
  43. }
  44. return showList; //返回当前数组
  45. }else{ // 展开状态-显示“收起”
  46. return this.toLearnList;
  47. }
  48. },
  49. word(){
  50. if(this.showAll == false){ //对⽂字进⾏处理
  51. return '展开'
  52. }else{
  53. return '收起'
  54. }
  55. }
  56. },
  57. }
  58. </script>
  59. <style scoped>
  60. .score-img {
  61. width: 16px;
  62. transition: all 0.3s;
  63. }
  64. .rotate-img {
  65. transform: rotate(180deg);
  66. }
  67. </style>

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/76823
推荐阅读
相关标签