当前位置:   article > 正文

vue手写卡片切换,并且点击获取到卡片信息

vue手写卡片切换,并且点击获取到卡片信息

需求:做一个卡片样式的列表,之后有一些基本信息,之后卡片选中后样式不一样,默认选中第一个卡片,点击卡片后可以获取到卡片的信息

一、效果

二、关键代码

index默认重0开始,activeTable默认为0,0-0等于0,但是有个!那就是取反的意思,那就是true ,就是点击的这个会有选中的active样式,也就是默认第一个会被选中,之后点击其他卡片只需要把index给赋值给activeTab就能实现了

  1. <div class="menu-list">
  2. <div v-for="(item, index) in menuTableData" :key="index">
  3. <div :class="{ active: !(index - activeTab), menus: 'menus' }" @click="menuClick(item, index)">
  4. <div class="menu-avatar">
  5. <i class="el-icon-star-off"></i>
  6. </div>
  7. <div class="menu-text">{{ item.name }}</div>
  8. </div>
  9. </div>
  10. </div>

三、完整代码

  1. <template>
  2. <div style="width: 600px; margin-top: 50px">
  3. <div class="menu-list">
  4. <div v-for="(item, index) in menuTableData" :key="index">
  5. <!-- index==0,activeTable默认为0,0-0等于0,但是有个!那就是取反的意思,那就是true ,就是点击的这个会有选中的active样式-->
  6. <div :class="{ active: !(index - activeTab), menus: 'menus' }" @click="menuClick(item, index)">
  7. <div class="menu-avatar">
  8. <i class="el-icon-star-off"></i>
  9. </div>
  10. <div class="menu-text">{{ item.name }}</div>
  11. </div>
  12. </div>
  13. </div>
  14. </div>
  15. </template>
  16. <script>
  17. export default {
  18. data() {
  19. return {
  20. menuTableData: [
  21. {
  22. name: '李华'
  23. },
  24. {
  25. name: '张三'
  26. },
  27. {
  28. name: '李四'
  29. }
  30. ],
  31. activeTab: 0 //根据点击进行高亮
  32. };
  33. },
  34. mounted() {},
  35. methods: {
  36. menuClick(item, index) {
  37. this.activeTab = index;
  38. console.log(item, '点击菜单管理获取');
  39. }
  40. }
  41. };
  42. </script>
  43. <style lang="scss" scoped>
  44. .menu-list {
  45. height: calc(100vh - 360px);
  46. overflow: auto;
  47. display: flex;
  48. flex-direction: column;
  49. box-sizing: border-box;
  50. // 左侧主要样式
  51. .menus {
  52. /* 矩形 7 */
  53. width: 300px;
  54. height: 80px;
  55. background: rgb(255, 255, 255);
  56. box-shadow: 0px 4px 4px 0px rgba(0, 0, 0, 0.1);
  57. border-radius: 4px;
  58. margin: 20px 20px;
  59. display: flex;
  60. align-items: center;
  61. .menu-avatar {
  62. /* 椭圆形 */
  63. width: 43px;
  64. height: 43px;
  65. background: rgba(163, 241, 255, 0.4);
  66. border-radius: 50%;
  67. display: flex;
  68. justify-content: center;
  69. align-items: center;
  70. margin-left: 20px;
  71. i {
  72. font-size: 25px;
  73. color: #fff;
  74. }
  75. }
  76. .menu-text {
  77. /* 用户管理 */
  78. color: pink;
  79. font-family: 阿里巴巴普惠体;
  80. font-size: 18px;
  81. font-weight: 400;
  82. line-height: 22px;
  83. letter-spacing: -1px;
  84. text-align: left;
  85. margin-left: 20px;
  86. }
  87. }
  88. // 选中菜单管理列表后高亮
  89. .active {
  90. box-shadow: 0px 8px 8px 0px rgba(27, 19, 19, 0.1);
  91. .menu-avatar {
  92. background: rgb(156, 210, 241);
  93. }
  94. .menu-text {
  95. font-weight: 600;
  96. }
  97. }
  98. }
  99. </style>

文章到此结束希望对你有所帮助~

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

闽ICP备14008679号