<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
本文範例為大家分享了微信小程式自定義Modal彈框的具體程式碼,供大家參考,具體內容如下
1、在根目錄下自定義一個components資料夾,用來存放自定義的元件。
2、再針對每一個元件建立一個資料夾,用來存放這個元件相關的檔案。
3、在指定元件的資料夾中右鍵->新建Component建立元件。這樣建立的目的是在json檔案中新增"component": true,將其宣告為一個元件。
下面開始例子:
1、元件頁面 index.wxml
<!-- 模態框 --> <!-- 遮罩層 --> <view class="components-modal-overlay-view" style="width: {{ windowWidth }}px; height: {{ windowHeight }}px; display: {{ show ? 'block' : 'none' }};"></view> <view class="col-center" style="width: {{ windowWidth }}px; height: {{ windowHeight }}px; display: {{ show ? 'flex' : 'none' }};"> <view> <!-- 關閉圖示 --> <view class="components-modal-close-view" style="display: {{ showCloseIcon ? 'block' : 'none' }};"> <image bindtouchend="hideCusModal" src="./images/close-white2x.png" style="width: 24px; height: 24px;"></image> </view> <view class="{{ showContentStyle ? 'components-modal-content-view' : '' }}"> <!-- slot表示可以插入wxml節點 --> <slot></slot> </view> </view> </view>
2、元件樣式 index.wxss
/* components/modal/index.wxss */ .components-modal-overlay-view { background-color: #000000; opacity: 0.5; position: fixed; z-index: 10; } .components-modal-close-view { text-align: right; margin-bottom: 5px; } .col-center { position: fixed; z-index: 11; display: flex; flex-direction: column; justify-content: center; align-items: center; } .components-modal-content-view { background: #FFFFFF; border-radius: 8px; display: flex; flex-direction: column; justify-content: center; padding: 20px; }
3、元件json設定 index.json
{ "component": true, "usingComponents": {} }
4、元件頁面的js index.js
// components/modal/index.js Component({ options: { /** styleIsolation 選項從基礎庫版本 2.6.5 開始支援。它支援以下取值: isolated 表示啟用樣式隔離,在自定義元件內外,使用 class 指定的樣式將不會相互影響(一般情況下的預設值); apply-shared 表示頁面 wxss 樣式將影響到自定義元件,但自定義元件 wxss 中指定的樣式不會影響頁面; shared 表示頁面 wxss 樣式將影響到自定義元件,自定義元件 wxss 中指定的樣式也會影響頁面和其他設定了 apply-shared 或 shared 的自定義元件。(這個選項在外掛中不可用。) */ styleIsolation: 'isolated' }, /** * 元件的初始資料 */ data: { windowWidth: 0, windowHeight: 0, }, /** * 生命週期函數 */ ready: function() { var _this = this; wx.getSystemInfo({ success: function(res) { _this.setData({ windowWidth: res.windowWidth, windowHeight: res.windowHeight, }); } }); }, /** * 元件的屬性列表 */ properties: { //是否顯示關閉圖示 showCloseIcon: { type: Boolean, value: true }, //是否顯示Content樣式(白色底色,圓角等) showContentStyle: { type: Boolean, value: true }, show: { type: Boolean, value: false }, }, /** * 元件的方法列表 */ methods: { /** * 隱藏Modal */ hideCusModal: function(){ this.setData({ show: false, }); } } })
5、元件js modal.js
const defaultOptions = { show: false, selector: '#cus-modal', showCloseIcon: true, showContentStyle: true, }; let currentOptions = Object.assign({}, defaultOptions); function getContext() { const pages = getCurrentPages(); return pages[pages.length - 1]; } const Modal = (options) => { options = Object.assign(Object.assign({}, currentOptions), options); const context = options.context || getContext(); const modal = context.selectComponent(options.selector); delete options.context; delete options.selector; if (modal) { modal.setData(options); wx.nextTick(() => { modal.setData({ show: true }); }); } else { console.warn('未找到 cus-modal 節點,請確認 selector 及 context 是否正確'); } }; Modal.show = (options) => Modal(options); export default Modal;
6、使用方法
需要用到modal的頁面引入modal元件:
{ "usingComponents": { "cus-modal": "../../components/modal/index" } }
頁面加入modal節點:
<cus-modal id="testModal"> <!-- 內容 --> <view style="text-align: center;"> <!-- ...... --> </view> </cus-modal>
在頁面的js中彈出modal視窗:
//引入modal元件 import Modal from '../../components/modal/modal'; //在程式碼中呼叫 Modal.show({ selector: '#testModal' });
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45