1. 程式人生 > >【微信小程式】自定義模態框例項

【微信小程式】自定義模態框例項

原文連結:https://mp.weixin.qq.com/s/23wPVFUGY-lsTiQBtUdhXA

1

概述

由於官方API提供的顯示模態彈窗,只能簡單地顯示文字內容,不能對對話方塊內容進行自定義,欠缺靈活性,所以自己從模態彈窗的原理角度來實現了自定義的模態對話方塊。今天我們就分享這樣的小教程。希望對大家有所幫助。

不多說了,二當家要上圖來啦!

快去拿個小板凳,坐等更多更新

注意:如若需要請聯絡微信geekxz

2

wxml

<button class="show-btn" bindtap="showDialogBtn">彈窗</button>
<!--彈窗-->
<view
class="modal-mask" bindtap="hideModal" catchtouchmove="preventTouchMove" wx:if="{{showModal}}">
</view>
<view class="modal-dialog" wx:if="{{showModal}}">
 <view class="modal-title">新增數量</view>
 <view class="modal-content">
   <view class="modal-input">
     <input
placeholder-class="input-holder" type="number" maxlength="10" bindinput="inputChange" class="input" placeholder="請輸入數量">
</input>
   </view>
 </view>
 <view class="modal-footer">
   <view class="btn-cancel" bindtap="onCancel" data-status="cancel">取消</view>
   <view
class="btn-confirm" bindtap="onConfirm" data-status="confirm">
確定</view>
 </view>
</view>
3

  js

Page({
   data: {
     showModal: false,
   },
   onLoad: function () {
   },
   /**
    * 彈窗
    */

   showDialogBtn: function() {
     this.setData({
       showModal: true
     })
   },
   /**
    * 彈出框蒙層截斷touchmove事件
    */

   preventTouchMove: function () {
   },
   /**
    * 隱藏模態對話方塊
    */

   hideModal: function () {
     this.setData({
       showModal: false
     });
   },
   /**
    * 對話方塊取消按鈕點選事件
    */

   onCancel: function () {
     this.hideModal();
   },
   /**
    * 對話方塊確認按鈕點選事件
    */

   onConfirm: function () {
     this.hideModal();
   }
})
4   css
.show-btn {
 margin-top: 100rpx;
 color: #22cc22;
}
.modal-mask {
 width: 100%;
 height: 100%;
 position: fixed;
 top: 0;
 left: 0;
 background: #000;
 opacity: 0.5;
 overflow: hidden;
 z-index: 9000;
 color: #fff;
}
.modal-dialog {
 width: 540rpx;
 overflow: hidden;
 position: fixed;
 top: 50%;
 left: 0;
 z-index: 9999;
 background: #f9f9f9;
 margin: -180rpx 105rpx;
 border-radius: 36rpx;
}
.modal-title {
 padding-top: 50rpx;
 font-size: 36rpx;
 color: #030303;
 text-align: center;
}
.modal-content {
 padding: 50rpx 32rpx;
}
.modal-input {
 display: flex;
 background: #fff;
 border: 2rpx solid #ddd;
 border-radius: 4rpx;
 font-size: 28rpx;
}
.input {
 width: 100%;
 height: 82rpx;
 font-size: 28rpx;
 line-height: 28rpx;
 padding: 0 20rpx;
 box-sizing: border-box;
 color: #333;
}
input-holder {
 color: #666;
 font-size: 28rpx;
}
.modal-footer {
 display: flex;
 flex-direction: row;
 height: 86rpx;
 border-top: 1px solid #dedede;
 font-size: 34rpx;
 line-height: 86rpx;
}
.btn-cancel {
 width: 50%;
 color: #666;
 text-align: center;
 border-right: 1px solid #dedede;
}
.btn-confirm {
 width: 50%;
 color: #ec5300;
 text-align: center;
}

以上程式碼效果


文末福利:

福利二:微信小程式入門與實戰全套詳細視訊教程。

【領取方法】

關注 【程式設計微刊】微信公眾號:

回覆【小程式demo】一鍵領取130個微信小程式原始碼demo資源。

回覆【領取資源】一鍵領取前端,Java,產品經理,微信小程式,Python等資源合集100G資源大放送。


相關推薦

程式定義例項

原文連結:https://mp.weixin.qq.com/s/23wPVFUGY-lsTiQBtUdhXA1概述由於官方API提供的顯示模態彈窗,只能簡單地顯示文字內容,不能對對話方塊內容進行自定義,欠缺靈活性,所以自己從模態彈窗的原理角度來實現了自定義的模態對話方塊。今天

程式定義元件

微信小程式中的元件前言之前做小程式開發的時候,對於開發來說比較頭疼的莫過於自定義元件了,當時官方對這方面的文件也只是寥寥幾句,一筆帶過而已,所以寫起來真的是非常非常痛苦!!好在微信小程式的庫從 1.6.3 開始,官方對於自定義元件這一塊有了比較大的變動,首先比較明顯的感覺就是文件比以前全多了,有木有!(小程式

程式定義抽屜式選單(底部,從下向上拉出)

微信提供了動畫api,就是下面這個通過使用這個建立動畫的api,可以做出很多特效出來下面介紹一個抽屜選單的案例實現程式碼:wxml:<!--button--> <view class="btn" bindtap="powerDrawer" data-stat

程式適應Canvas 帶跑馬燈的辛運大轉盤 內附程式碼和詳解

第一篇關於Canvas環形進度條的博文獲得不少關注度,時隔這麼多日才發出第二篇關於Canvas的博文,並不是我懈怠了,而是最近公司比較忙,寫好的demo一直沒機會發,今天公司終於閒下來了,把我做好的demo整理一下發上來,給喜歡canvas的初學者看看,因為本人也是初學者,所

程式程式掃描定義二維碼到指定頁面的坑

重點 測試版本不需要釋出也可以進行測試 測試階段不釋出,只能掃描測試連結中的地址中的二維碼,其他的就算符合規範也不可以 如果是要動態匹配引數,那麼動態部分必定是/後面的字串 如果是要動態匹配引數,那

程式常用元件及定義元件

![](//p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/79de7819a7b24837ad9fea1565afd81d~tplv-k3u1fbpfcp-zoom-1.image) # (一) 常用標籤 元件你可以理解為傳統頁面開發時候的各種標籤,例如 div sp

程式在js中匯入第三方js或自己寫的js,使用外部js中的function的兩種方法 import和require的區別使用方法

如下 定義了一個外部js檔案,其中有一個function import lunaCommon from '../lunaCommon.js'; var ctx = wx.getStorageSync("ctx"); var filter = "/ms-code"; var apis

程式--15定義元件

關於自定義元件有兩個知識點需要說一下: 1.子元件向父元件傳引數 在子元件內部,這樣觸發事件,傳遞引數 在父元件內部這樣接收引數 2. 父元件向子元件傳引數 在父元件這裡定義一個now-in 在子元件這裡引入 這樣的話,nowIn就相當於data裡

程式--bindtap引數傳遞,配合wx.previewImage實現多張縮圖預覽

  本文為原創隨筆,純屬個人理解。如有錯誤,歡迎指出。 如需轉載請註明出處 在微信小程式中預覽圖片分為   a、預覽本地相簿中的圖片。   b、預覽某個wxml中的多張圖片。 分析:實質其實是一樣的。都是給wx.previewImage傳入引數

程式公共方法實現實時捕捉input輸入

專案中,一個表單中經常有好幾個input,但是微信小程式並不像vue那樣實現雙向繫結,所以我們要自己去實現當用戶輸入的時候,實時獲取使用者輸入的值。 方法比較簡單,就兩個步驟。 1.wxml <input data-name='form.base.name

程式開發工具上七牛雲的圖片可以看到,但是在真機上看不到的原因解決

在開發微信小程式過程中,在微信開發者工具上,七牛雲的圖片都可以展示出來,但是在真機上,七牛雲的圖片卻展示不出來,也沒有報404找不到或者不能載入圖片的問題,     必須保證: 1.圖片是用image載入的; 2.圖片的url裡面沒有中文; 3.圖片的HTTP應為小寫的

程式c# 實現獲取openid、session_key 服務端

c#寫一個獲取微信小程式 openid和session_key 的方法。。 1,微信小程式端 // 登入 wx.login({ success: res => { // 傳送 res.code 到後臺換取 openId, sessionKey,

程式元件之頁面佈局

小程式的flex佈局 小程式建議使用flex佈局進行排版 flex就是一個盒裝彈性佈局 flex是一個容器,所有子元素都是它的成員。 定義佈局:display:flex flex 容器的屬性: 1、屬性flex-direction: 排列方向。有下面

程式 Canvas 定義時間顯示器 數碼管顯示

微信小程式自定義時間顯示器Demo 廢話不多話,還是依舊上圖再說,哈哈 怎麼樣,效果還是不錯的吧,因專案要求,要畫出類似於數碼管顯示的時間樣式,沒辦法,雖然不咋過好弄,但工作畢竟得做,於是乎,樓主,花了3個小時在那裡硬生生的算座標,差不多還是給擼出來,樓主寫成了一個外掛,方便大

程式scroll-view 注意事項

之前用到scroll-view的時候踩過一次坑,解決後,覺得不是什麼很深的坑,遂沒有做記錄,結果這次又用到了,同一個坑又掉進去一次,心裡很難受,難受我沒長腦子,也難受我眼高手低,所以這一次,我決定記錄下來,給自己一個警醒!   橫向滑動注意事項: 1、scroll-view

程式下載並預覽文件——pdf、word、excel等多種型別

簡要:wx.downloadFile(OBJECT)下載檔案資源到本地,客戶端直接發起一個 HTTP GET 請求,返回檔案的本地臨時路徑。wx.openDocument(OBJECT)新開頁面開啟文件,支援格式:doc, xls, ppt, pdf, docx, xlsx, pptx。 呼

程式入門

MINA框架:響應式資料繫結系統:檢視層、邏輯層,背後有MVVM     將View 的狀態和行為抽象化,將檢視 UI 和業務邏輯分開 一、檢視層描述語言:      1、WXML:類似HTML    

程式 storage的小結

微信本地儲存,為此提供了好幾個方法。 api文件如下: ps: api文件我居然翻到了兩個版本,真特麼神奇。還好兩版就是一個精簡版一個詳解版。 每個微信小程式都可以有自己的本地快取,可以

程式上拉重新整理和下拉載入

上拉重新整理和下拉載入有兩種方式可以實現: 1.使用scroll-view元件進行操作,使用自帶的scrolltoupper和scrolltolower事件可以實現。適合頁面區域性的上拉下拉。 附上

程式定義select下拉選項元件

知識點:元件,animation,獲取當前點選元素的索引與內容 微信小程式中沒有select下拉選項框,所以只有自定義。自定義的話,可以選擇模板的方式,也可以選擇元件的方式來建立。 這次我選擇了元件,這樣只需引入元件和新增資料,其它的不用管,就能實現多個地方重複使用了。