微信小程序WeUI中half-screen-dialog底部弹窗相关问题

这篇具有很好参考价值的文章主要介绍了微信小程序WeUI中half-screen-dialog底部弹窗相关问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需求:
如图需要从页面底部弹出一个弹框,弹框里的内容超出最大高度时,可以滚动。
mp-halfscreendialog,微信小程序,小程序,前端

问题:

  1. 原生的组件关闭图标在左侧,需要通过样式改到右侧
  2. 原生的组件底部有footer按钮区域,需要通过样式隐藏掉
  3. 在弹框里使用区域滚动通过scroll-view 设置纵向滚动并给最大高度
  4. 设置title
  5. half-screen-dialog如果在子组件中引入,需要在pages父组件中的css文件里修改样式。在子组件中修改不生效

代码:

index.json

{
  "component": true,
  "usingComponents": {
    "compute-cart": "/components/computeCart",
    "mp-half-screen-dialog": "weui-miniprogram/half-screen-dialog/half-screen-dialog"
  }
}

index.wxml

<mp-half-screen-dialog extClass='type-dialog' show="{{typeDialog}}" bindclose='toggleDialog'>
  <view slot="title" style="text-align: left;">
    <text>{{curGoodsSpec.goodsName}} {{curGoodsSpec.spec}}</text>
  </view>
  <view class="model" slot="desc">
    <scroll-view class="scrollBox" scroll-y="true">
      <view class="" wx:for="{{curGoodsSpec.detailVos}}" wx:key="index">
          <view class="title">
            {{item.goodsSpec}}
            <view class="bestOffer" wx:if="{{item.bestOfferLabel}}">
              <image src="https://retail.benlai.com/fortune/images/bazaar/cheapestSingle.png" mode="widthFix" class="cheapestSingle"></image>
              单价最便宜
            </view>
          </view>
          <view class="goods-weight">
            <view class="goods-netWeight " style="margin-right: 24rpx;">
              <view class="weight-name {{item.isSelected ? 'goods-name-active' : ''}} {{curGoodsSpec.settlementType == 1 ? 'bordeRi' : ''}}">¥{{item.disSalePrice}}/件</view>
              <view class="weight-num {{item.isSelected ? 'goods-num-active' : ''}}" wx:if="{{curGoodsSpec.settlementType !== 1}}">约¥{{item.netUnitPrice}}/斤</view>
            </view>
          </view>
      </view>
    </scroll-view>
    <!-- 合计 -->
    <view class="footer">
      <view class="footer-all">
        共计:<text class="totalIcon">¥</text><text class="totalMoney"> {{curGoodsSpec.totalSpecAmount}}</text>
      </view>
      <view class="">
        <!-- 不在售卖时间显示加减数量 -->
        <view class="{{curGoodsSpec.goodsStatus == 1 ? 'priceinfo' : ''}} {{curGoodsSpec.goodsStatus == 5 ? 'out-sale-cart-btn' : ''}}">
          <compute-cart
              quantity="{{curGoodsSpec.cartQty}}"
              cur-stock="{{curGoodsSpec.curStock}}"
              from="cartpageSpec"
              goods-key="{{curGoodsSpec.goodsKey}}"
              goods-status="{{curGoodsSpec.goodsStatus}}"
              multiple="{{curGoodsSpec.multiple}}"
              bind:cb="bindCartItemChange">
          </compute-cart>
        </view>
      </view>
    </view>
  </view>
</mp-half-screen-dialog>

index.js

methods: {
    bindCartItemChange(e) {
      this.setData({
        curGoodsKey: e.detail.goodsKey
      })
      this.getGoodsSpecShow()
    },
    // 优惠加购
    toggleDialog(e) {
        this.setData({
          typeDialog: !this.data.typeDialog,
          curGoodsKey: e.detail
        })
        if (this.data.typeDialog) {
          this.getGoodsSpecShow()
        }
    },
    getGoodsSpecShow() {
      let params_ = {
        goodsKey: this.data.curGoodsKey,
        merchantNo: wx.getStorageSync("merchantNo")
      }
      goodsSpecShow(params_).then(data => {
        if (data) {
          this.setData({
            curGoodsSpec: data
          })
        }
      })
    },
  }

index.wxss

.goods-weight .weight-num {
  color: #666;
  background: #fff;
  border-radius: 0rpx 4rpx 4rpx 0rpx;
  border: 1rpx solid #CFCFCF;
  padding: 9rpx 12rpx;
}
.scrollBox {
  max-height: 580rpx;
}
.scrollBox .title {
  font-size: 28rpx;
  font-weight: 400;
  color: #999999;
  margin-bottom: 16rpx;
  display: flex;
}
.model {
  border-top: 2rpx solid #EEEEEE;
  padding-top: 32rpx;
}
.footer {
  padding: 24rpx 32rpx 0 32rpx;
  border-top: 2rpx solid #EEEEEE;
  display: flex;
  justify-content: space-between;
}
.footer .footer-all {
  font-size: 24rpx;
  font-weight: 400;
  color: #666666;
  line-height: 34rpx;
}
.footer .totalIcon {
  font-size: 24rpx;
  font-weight: 400;
  color: #FF0B0B;
  line-height: 34rpx;
}
.footer .totalMoney {
  font-size: 40rpx;
  font-weight: 600;
  color: #FF0B0B;
  line-height: 56rpx;
}
.scrollBox {
  padding: 0 32rpx;
}

.priceinfo {
  text-align: right;
}
.out-sale-cart-btn {
  position: relative;
  z-index: 20;
}
.bestOffer {
  font-size: 24rpx;
  font-weight: 400;
  color: #FF0B0B;
  line-height: 34rpx;
  display: flex;
  margin-left: 8rpx;
}
.goods-weight .goods-name-active {
  color: #FA4F13;
  border: 1rpx solid #E66F22;
  background: #fdd8cf;
}
.goods-weight .goods-num-active {
  color: #FA4F13;
  border: 1rpx solid #E66F22;
  border-left: 0;
}

弹窗样式只能写在pages父组件中

/* half-screen-dialog ui组件样式只能写在pages里 */
 .type-dialog .weui-half-screen-dialog__ft {
  display: none !important;
}
.type-dialog .weui-half-screen-dialog__bd {
  padding-bottom: 20px;
}
.type-dialog {
  padding: 0;
}
.weui-half-screen-dialog__hd {
  padding: 0 32rpx;
}
/* 隐藏更多按钮避免关闭点击偶尔失效 */
.weui-half-screen-dialog .weui-icon-btn_more{
  display: none !important;
}
.weui-icon-btn_close {
  position: absolute;
  right: -680rpx;
}
.weui-half-screen-dialog__hd__main {
  padding-left: 0 !important;
}

参考文章:
微信小程序WeUI中half-screen-dialog的小问题
WeUI官方组件库:助力小程序高效设计与开发官方文章来源地址https://www.toymoban.com/news/detail-763531.html

到了这里,关于微信小程序WeUI中half-screen-dialog底部弹窗相关问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序前端引入weui组件库

    正在开发的微信小程序,想使用weui组件库。  步骤如下: 基础:1.小程序开发工具:1.06.22 以管理员身份运行命令行窗口(cmd)或使用VSCode进入终端,在cmd中进入项目的根目录。然后输入以下命令: npm init 后面一路按回车健即可,最终会在项目的根目录中创建出一个名为pa

    2024年02月11日
    浏览(51)
  • 微信小程序weui-form表单的使用

    引入: app.json: \\\"useExtendedLib\\\":{ \\\"weui\\\": true } 使用页面or组件xxx.json wxml构建、 js 部分

    2024年02月15日
    浏览(23)
  • 【微信小程序】图片上传组件“mp-uploader“(weui)

       wxml    json    js    weui 是微信官方提供的一款小程序插件,是一套基于样式库 weui-wxss 开发的小程序扩展组件库,同微信原生视觉体验一致的UI组件库,由微信官方设计团队和小程序团队设计。官方文档:https://wechat-miniprogram.github.io/weui/docs/。   图片上传组件

    2024年02月11日
    浏览(34)
  • 微信小程序学习实录1(wxml文档、引入weui、双向数据绑定、提交表单到后端)

    wx:for 在组件上使用 wx:for 控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。 默认数组的当前项的下标变量名默认为 index,数组当前项的变量名默认为 item 使用 wx:for-item 可以指定数组当前元素的变量名, 使用 wx:for-index 可以指定数组当前下标的变量名: 在

    2024年02月02日
    浏览(41)
  • 【微信小程序】使用weui组件库来实现弹出一个确认的弹窗popup,其中包含图片和名称

    在微信小程序中,你可以使用weui组件库来实现弹出一个确认的popup,并在其中包含图片和名称。以下是一个示例代码: 在wxml文件中,添加一个按钮来触发弹出确认popup: 在wxss文件中,定义确认popup的样式: 在js文件中,编写相应的逻辑来显示和隐藏确认popup,并传递图片和名

    2024年02月17日
    浏览(35)
  • 使用van-dialog二次封装微信小程序模态框

    由于微信小程序的wx.showModal不支持富文本内容,无法实现更灵活的展示效果,故需要进行二次封装 实现思路:使用van-dialog以及微信小程序的rich-text实现 代码如下: 使用方法 本文仅提供一种思路,可能不是最优写法,欢迎大家讨论留言

    2024年02月07日
    浏览(37)
  • WeUI - 微信官方推出的免费开源 UI 组件库,上手简单,风格简约,在微信生态开发轻量项目的绝佳选择

    微信早年发布的 UI 框架,对想要创建让微信用户感到熟悉的应用来说,是一个好选择。 关于 WeUI WeUI 一款由腾讯微信团队开发的 UI 组件库,是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,这是专门被设计用来构建在微信运行的

    2024年02月12日
    浏览(42)
  • 引入小程序组件库 WeUI 报错 error: module “miniprogram_npm/weui-miniprogram/_commons/0.js“ is not defined

    如果有类似报错,并且package.json已经有\\\"weui-miniprogram\\\" 依赖了 那就先删除了node_modules 跟 miniprogram_npm 两个文件夹(有就删除,没有也一样是按照下面的步骤),执行以下几步: 打开终端 构建 miniprogram_npm 文件夹 miniprogram_npm是基于node_modules文件夹构建的,确保先执行上面的第

    2024年02月11日
    浏览(92)
  • 小程序 WEUI 隐藏导航栏使用自定义导航栏时Toptips在顶部显示

    使用weui的toptips时候,我们的导航栏使用了自定义,高度根据系统来定的,然后使用form表单验证提示弹窗时,会在最上面被遮挡了。    需要使用weui ext-class 来实现穿透修改样式。 ext-class的top使用继承父元素的top即可 现在没被顶在最上面了

    2024年02月08日
    浏览(29)
  • 微信小程序显示loading效果,微信小程序节流效果,微信小程序生命周期,微信小程序组件的创建与使用

            文档地址:wx.showLoading(Object object) | 微信开放文档         请求前 显示loading 效果 ,请求结束后隐藏loading         下拉触底需要时间比较长,但是可能会一直进行请求,我们可以 设置一个 加载状态 ,用来控制什么时候 才可以加载         当我们loading 效果为tr

    2024年02月10日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包