vue点击展开更多,点击收起

<!-- 休闲娱乐界面 -->
<template>
  <div>
    <div class="menus">
      <div class="menus_item">
        <div class="icon_box">
          <span class="iconfont icon-anmo"></span>
        </div>
        <span>按摩/足疗</span>
      </div>
      <div class="menus_item">
        <div class="icon_box box2">
          <span class="iconfont icon-xiyu"></span>
        </div>
        <span>洗浴/汗蒸</span>
      </div>
      <div class="menus_item">
        <div class="icon_box box3">
          <span class="iconfont icon-KTV"></span>
        </div>
        <span>KTV</span>
      </div>
      <div class="menus_item">
        <div class="icon_box box4">
          <span class="iconfont icon-jiuba"></span>
        </div>
        <span>酒吧</span>
      </div>
      <div class="menus_item">
        <div class="icon_box box5">
          <span class="iconfont icon-hongpa"></span>
        </div>
        <span>轰趴</span>
      </div>
    </div>

    <!-- 列表 -->
    <van-tabs
      color="#0de6ea"
      :active="active"
      v-bind:change="onChange"
    >
      <van-tab title="精选">
        <div class="choicenesslist">
          <div class="choiceness_item">
            <div class="main">
              <div class="left">
                <img
                  src="https://ss0.baidu.com/73x1bjeh1BF3odCf/it/u=4098725977,2954176041&fm=85&s=BE121DCF4F7235866C1D591A03005012"
                  mode="aspectFill"
                >
              </div>
              <div class="right">
                <div class="title"> 新肩堂肩颈按摩理疗(江南丽日店)</div>
                
                  <van-rate
                    readonly
                    size="12"
                    :value="value"
                  />
                
                <div class="bottom">
                  <div class="type">按摩/足疗</div>
                  <div class="location">江南大道沿线  6.5km</div>
                </div>
              </div>
            </div>
            <div class="sale" v-for="(item,index) in showList" :key="index">
              <div class="left">
                <div>{{item.real_price}}</div>
                <div>门市价:{{item.market_price}}</div>
              </div>
              <div class="right">
                <div class="top">
                  <div class="chou"></div>
                  <span>{{item.msg}}</span>
                </div>
                <span>{{item.buy_num}}</span>
              </div>
            </div>
            <div class="more" @click="show=!show">{{show?'收起':'查看更多优惠'}}<span class="iconfont {'show'?icon-xiajiantou:icon-up}"></span></div>
          </div>
          <div class="choiceness_item">
            <div class="main">
              <div class="left">
                <img
                  src="https://ss0.baidu.com/73x1bjeh1BF3odCf/it/u=4098725977,2954176041&fm=85&s=BE121DCF4F7235866C1D591A03005012"
                  mode="aspectFill"
                >
              </div>
              <div class="right">
                <div class="title"> 新肩堂肩颈按摩理疗(江南丽日店)</div>
                
                  <van-rate
                    readonly
                    size="12"
                    :value="value"
                  />
                
                <div class="bottom">
                  <div class="type">按摩/足疗</div>
                  <div class="location">江南大道沿线  6.5km</div>
                </div>
              </div>
            </div>
            <div class="sale">
              <div class="left">
                <div>¥19</div>
                <div>门市价:¥39</div>
              </div>
              <div class="right">
                <div class="top">
                  <div class="chou"></div>
                  <span>仅售19元,价值39元周一至周五11:00 - 16:00使用</span>
                </div>
                <span>90天消费425</span>
              </div>
            </div>
            <div class="sale">
              <div class="left">
                <div>¥39</div>
                <div>门市价:¥59</div>
              </div>
              <div class="right">
                <div class="top">
                  <div class="chou"></div>
                  <span>仅售39元,价值59元周一至周五11:00 - 16:00使用</span>
                </div>
                <span>90天消费525</span>
              </div>
            </div>
          </div>
        </div>
      </van-tab>
      <van-tab title="休闲">内容 2</van-tab>
      <van-tab title="聚会">内容 3</van-tab>
      <van-tab title="运动">内容 4</van-tab>
    </van-tabs>
  </div>
</template>

<script>
export default {
  data () {
    return {
      saledataList: [
        {
          'real_price': 19,
          'market_price': 39,
          'msg': '仅售19元,价值39元周一至周五11:00 - 16:00使用',
          'buy_num': '90消费425'
        },
        {
          'real_price': 39,
          'market_price': 59,
          'msg': '仅售39元,价值59元周一至周五11:00 - 16:00使用',
          'buy_num': '90消费425'
        },
        {
          'real_price': 29,
          'market_price': 229,
          'msg': '仅售29元,价值229元周一至周五11:00 - 16:00使用',
          'buy_num': '90消费425'
        }
      ],
      active: 0,
      value: 5,
      show: false
    }
  },
  computed: {
    showList: function () {
      if (this.show === false) {
        var showList = []
        if (this.saledataList.length > 2) {
          for (var i = 0; i < 2; i++) {
            showList.push(this.saledataList[i])
          }
        } else {
          showList = this.saledataList
        }
        return showList
      } else {
        return this.saledataList
      }
    }
  },
  methods: {
    onChange (event) {
      wx.showToast({
        title: `切换到标签 ${event.detail.index}`,
        icon: 'none'
      })
    },
    toggle () {
      this.show = !this.show
    }
  }
}
</script>
<style lang='scss' scoped>
@import "style.scss";
</style>
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以利用 `v-for` 指令来循环渲染版本列表,利用 `v-if` 指令来控制版本列表的展开收起状态。当展开状态时,使用 `transition` 过渡动画来实现卡片式的效果。 HTML代码: ```html <template> <div class="version-list"> <div class="version-item" v-for="(item, index) in versionList" :key="index" v-if="index < limit"> <!-- 版本信息 --> <div class="version-info"> <div class="version-name">{{ item.name }}</div> <div class="version-time">{{ item.time }}</div> </div> <!-- 版本描述 --> <div class="version-desc">{{ item.desc }}</div> </div> <!-- 展开收起按钮 --> <div class="more" v-if="versionList.length > limit" @click="toggleShow"> <span v-if="showMore">收起</span> <span v-else>更多</span> </div> </div> </template> ``` CSS代码: ```css .version-list { height: 150px; overflow: hidden; } .version-item { margin-bottom: 20px; background-color: #fff; border: 1px solid #ddd; padding: 10px; box-shadow: 0 0 5px rgba(0, 0, 0, 0.1); } .version-item:last-child { margin-bottom: 0; } .version-info { display: flex; justify-content: space-between; align-items: center; } .version-name { font-size: 16px; font-weight: bold; } .version-time { color: #999; } .version-desc { margin-top: 10px; font-size: 14px; line-height: 1.5; } .more { cursor: pointer; text-align: center; margin-top: 10px; } ``` JS代码: ```js export default { data() { return { versionList: [ { name: 'V1.0.0', time: '2022-01-01', desc: '这是版本 V1.0.0 的描述信息', }, { name: 'V1.0.1', time: '2022-01-02', desc: '这是版本 V1.0.1 的描述信息', }, { name: 'V1.0.2', time: '2022-01-03', desc: '这是版本 V1.0.2 的描述信息', }, { name: 'V1.0.3', time: '2022-01-04', desc: '这是版本 V1.0.3 的描述信息', }, { name: 'V1.0.4', time: '2022-01-05', desc: '这是版本 V1.0.4 的描述信息', }, ], limit: 3, // 初始展示的版本数量 showMore: false, // 是否展开状态 }; }, methods: { // 切换展开收起状态 toggleShow() { this.showMore = !this.showMore; }, }, }; ``` 其中,`versionList` 数组存储版本列表,`limit` 为初始展示的版本数量,`showMore` 为展开收起状态标识变量。 在模板中使用 `v-for` 指令循环渲染版本列表,利用 `v-if` 指令来控制版本列表的展开收起状态。当展开状态时,使用 `transition` 过渡动画来实现卡片式的效果。 展开收起按钮使用 `v-if` 指令来控制显示和隐藏,使用 `@click` 事件监听来切换展开收起状态。 最后,结合 CSS 样式,就可以实现点击更多展开卡片式、固定高度的版本列表的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值