修改源码实现小程序UI库iview weapp的modal组件自定义宽高

2019-12-24 19:45:26

记一下小程序端UI库iview weapp的modal模态窗自定义样式修改

因为项目需要在模态窗中显示内容,小程序端的iview没有类似popup这种的弹出框,所以就选择了modal对话框来承载弹出内容。一番引入使用后发现,当模态框中的内容多了之后会导致内容区出现滚动,因为模态框的高度是固定的所以就需要上下滚动查看了,一是不方便操作然后又感觉比较丑。就想通过控制对话框内容区的宽高样式来适应弹出内容。

修改方法如下:

组件修改

组件代码:
1.modal的index.js
添加宽高属性


Component({
    externalClasses: ['i-class', 'i-class-mask'],

    properties: {
        ...
        height: {
            type: String,
            value: ''
        },
        width: {
            type: String,
            value: ''
        }
    },

2.modal的index.wxml修改:

  • i-modal-body、i-modal-main的标签增加style属性设置

...
<view class="i-modal-main" style="width:{{width}}px;">
...
<view class="i-modal-body" style="height:{{height}}px;max-height:{{height}}px"><slot></slot></view>
...

页面修改

1.data添加宽高属性


export default {
  data() {
    return {
      ...,
      height: 150,
      width: 310,
    }
  },
  ...
}

2.页面内引用的modal组件标签上传入属性


<i-modal
    title="新增银行卡"
    i-class="iot-modal"
    :visible="visible"
    :actions="actions"
    @iclick="handleAddCard"
    :height="height"
    :width="width"
  >

小程序页面示例效果

以上只是简单的改造,欢迎留言更好的方法

本文链接:

评 论:

博主推荐
微信扫码关注「极客之路」
领取学习礼包