美文网首页
微信小程序卡片效果

微信小程序卡片效果

作者: beatzcs | 来源:发表于2019-04-04 16:20 被阅读0次

    卡片列表效果:


    cardview.gif

    卡片两列效果:


    cardview_2.gif

    1.wxml代码:

    <import src='/template/load-more/load-more.wxml' />
    
    <view class='container'>
      <view class='mrys' wx:for="{{storyList}}">
        <image class='image' src='{{item.imageUrl}}' mode='aspectFill'></image>
        <view class='title'>{{item.title}}</view>
        <view class='content'>{{item.content}}</view>
      </view>
    
      <template is='loading' data='{{loading}}'></template>
    </view>
    

    2.wxss代码:
    要使用两列效果,把.mrys前半部分注释掉,把下半注释部分打开即可.

    @import '/template/load-more/load-more.wxss';
    
    page {
      background: #fff;
    }
    
    .container {
      padding-top: 20rpx;
    }
    
    .mrys {
      /* 一列卡片 */
      margin: 16rpx;
      margin-bottom: 40rpx;
      padding: 10rpx;
      border: 2rpx solid #707b8b;
      border-radius: 2rpx;
      box-shadow: 8rpx 4rpx 4rpx #707b8b;
      position: relative;
      background-color: #98a5a5;
      /* 两列卡片 */
      /*   
      width: 48%;
      margin: 2% 1%;
      display: inline-block;
      vertical-align: top;
      position: relative; 
      */
    }
    
    .mrys .image {
      width: 100%;
      height: 240rpx;
      background-color: #eee;
    }
    
    .mrys .title {
      position: absolute;
      right: 0;
      top: 0;
      margin-top: 200rpx;
      margin-right: 20rpx;
      font-size: 11pt;
      color: #f9e3b0;
      z-index: 1;
    }
    
    .mrys .content {
      font-size: 10pt;
      color: #eee;
      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;
      overflow: hidden;
      text-indent: 20pt;
    }
    

    3.json代码:

    {
      "usingComponents": {},
      "enablePullDownRefresh": true
    }
    

    4.js代码:
    项目使用了云开发,从服务器端获取的数据.

    Page({
    
      /**
       * 页面的初始数据
       */
      data: {
        pageIndex: 1,
        pageSize: 8,
        storyList: [],
        loading: true,
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function(options) {
        this.loadMrysData();
      },
    
      /**
       * 获取列表数据
       */
      loadMrysData: function() {
        if (!this.data.loading) {
          return;
        }
        const db = wx.cloud.database();
        let { pageIndex, pageSize } = this.data;
        db.collection('mrys').where({
    
        }).limit(pageSize * pageIndex).get({
          success: res => {
            wx.stopPullDownRefresh();
            let list = this.data.storyList.concat(res.data);
            this.setData({
              storyList: res.data,
              loading: res.data.length == (pageSize * pageIndex)
            })
            console.log('[数据库] [查询记录] 成功: ', res)
          },
          fail: err => {
            wx.showToast({
              icon: 'none',
              title: '查询记录失败'
            })
            console.error('[数据库] [查询记录] 失败:', err)
          }
        })
      },
    
      /**
       * 页面相关事件处理函数--监听用户下拉动作
       */
      onPullDownRefresh: function() {
        this.setData({
          pageIndex: 1,
          loading: true
        })
        this.loadMrysData();
      },
    
      /**
       * 页面上拉触底事件的处理函数
       */
      onReachBottom: function() {
        let pageIndex = this.data.pageIndex + 1;
        this.setData({
          pageIndex: pageIndex
        })
        this.loadMrysData();
      }
    })
    

    圈点勾画

    1.文本展示多行,并且超过行数省略号显示实现:

      display: -webkit-box;
      -webkit-box-orient: vertical;
      -webkit-line-clamp: 2;  //最多展示两行,超出即显示省略号
      overflow: hidden;
    

    2.段落前面空两个字的空格:
    比如font-size: 10pt,那么就要设置text-indent为20pt.

    text-indent: 20pt;  //字体大小*2
    

    3.box-shadow设置边框阴影:


    box-shadow.png
    box-shadow: 8rpx 4rpx 4rpx #707b8b;
    

    4.加载更多抽离成模板了,没有贴代码,用到的地方可直接删掉,不影响.

    相关文章

      网友评论

          本文标题:微信小程序卡片效果

          本文链接:https://www.haomeiwen.com/subject/padfiqtx.html