微信小程序-自定义弹出框

<---------------------------------定义组建------------------------------------------------------------------------->

// components/component-tag-name.js

Component({

options: {

multipleSlots: true // 在组件定义时的选项中启用多slot支持

},

/**

* 组件的属性列表

*/

properties: {

},

/**

* 组件的初始数据

*/

data: {

},

/**

* 组件的方法列表

*/

methods: {

myActionSheetCancel() {

this.hideMyActionSheet()

},

showMyActionSheet: function () {

// 显示遮罩层

var animation = wx.createAnimation({

duration: 200,

timingFunction: "linear",

delay: 0

})

this.animation = animation

animation.translateY(300).step()

this.setData({

animationData: animation.export(),

showModalStatus: true

})

setTimeout(function () {

animation.translateY(0).step()

this.setData({

animationData: animation.export()

})

}.bind(this), 200)

},

hideMyActionSheet: function () {

// 隐藏遮罩层

var animation = wx.createAnimation({

duration: 200,

timingFunction: "linear",

delay: 0

})

this.animation = animation

animation.translateY(300).step()

this.setData({

animationData: animation.export(),

})

setTimeout(function () {

animation.translateY(0).step()

this.setData({

animationData: animation.export(),

showModalStatus: false

})

}.bind(this), 200)

},

}

})

json

{

"component": true,

"usingComponents": {}

}

wxml

<!-- 组件模板 -->

<view class="wrapper">

<slot name="before"></slot>

<view class="maskLayer" bindtap="hideMyActionSheet" wx:if="{{showModalStatus}}"></view>

<view animation="{{animationData}}" class="actionSheetLayer" wx:if="{{showModalStatus}}">

<slot></slot>

<view class=‘cancel‘ bindtap=‘myActionSheetCancel‘> 取消 </view>

</view>

</view>

wxss

/* components/component-tag-name.wxss */

.maskLayer {

width: 100%;

height: 100%;

position: fixed;

top: 0;

left: 0;

background: #000;

opacity: 0.2;

overflow: hidden;

z-index: 1000;

color: #fff;

}

.actionSheetLayer {

width: 100%;

overflow: hidden;

position: fixed;

bottom: 0;

left: 0;

z-index: 2000;

background: #ededed;

}

.play{

width: 100%;

height: 98rpx;

line-height: 98rpx;

text-align: center;

background: #fff;

border-top: 1rpx solid rgba(204, 204, 204, 0.356);

}

.cancel{

width: 100%;

line-height: 98rpx;

height: 98rpx;

text-align: center;

background: #fff;

border-top: 1rpx solid #ededed;

margin-top: 10rpx;

}

<----------------------------------------引用页面------------------------------------------------------------------>

const app = getApp()

Page({

data: {

actionSheetText: [‘选项1‘, ‘选项2‘, ‘选项3‘]

},

onLoad: function () {

this.myActionSheet = this.selectComponent(".list")

console.log(this);

},

showMyActionSheet() {

console.log(‘click‘);

this.myActionSheet.showMyActionSheet()

},

actionSheetIndex(e){

console.log(‘当前下标:‘, e.currentTarget.dataset.index)

}

})

JSON

{

"usingComponents": {

"myActionSheet": "/component/components/component-tag-name"

}

}

wxml

<!-- 引用组件的页面模版 -->

<view>

<myActionSheet class=‘list‘>

<view slot="before" bindtap=‘showMyActionSheet‘ wx:for=‘{{5}}‘>某图标</view>

<view wx:for=‘{{actionSheetText}}‘ class=‘cancelist‘ bindtap=‘actionSheetIndex‘ data-index=‘{{index}}‘>{{item}}</view>

</myActionSheet>

</view>

wxss

.intro {

margin: 30px;

text-align: center;

}

.cancel{

width: 100%;

line-height: 98rpx;

height: 98rpx;

text-align: center;

background: #fff;

border-top: 1rpx solid #ededed;

margin-top: 10rpx;

}

.cancelist{

width: 100%;

line-height: 98rpx;

height: 98rpx;

text-align: center;

background: #fff;

border-top: 1rpx solid #ededed;

}

原文地址:https://www.cnblogs.com/lipuqing180906/p/9604489.html

时间: 2024-11-09 19:44:37

微信小程序-自定义弹出框的相关文章

微信小程序-自定义复选框

功能: 1.需要多选复选框,并且可以上拉滚动: 2.需要通过名称手写字母排序的,并且可以上拉滚动: 常规的小程序自带的原生picker无法满足我们的要求,因此一些特殊效果需要我们自定义来实现,废话不多说,我们直接看效果: index.wxml布局 <view class="container"> <view class='class bgFFF' bindtap='isDep'> <view class='class-text'> <text

react native仿微信性别选择-自定义弹出框

简述 要实现微信性别选择需要使用两部分的技术: 第一.是自定义弹出框: 第二.单选框控件使用: 效果 实现 一.配置弹出框 弹出框用的是:react-native-popup-dialog(Git地址:https://github.com/jacklam718/react-native-popup-dialog) 具体配置见Git文档~ 二.配置单选框 用的是:react-native-elements(Git地址:https://react-native-training.github.io/

微信小程序自定义弹窗wcPop插件|仿微信弹窗样式

微信小程序自定义组件弹窗wcPop|小程序消息提示框|toast自定义模板弹窗 平时在开发小程序的时候,弹窗应用场景还是蛮广泛的,但是微信官方提供的弹窗比较有局限性,不能自定义修改.这个时候首先想到的是自定义组件化开发,就是把弹出框封装成一个组件,然后多处调用. 解决了小程序开发自定义弹窗出现后,遮罩层下的页面仍可以滚动的方法: 给遮罩层的最外层view中加入catchtouchmove="preventTouchMove" 即可解决该遮罩层点透问题. 根据需要还可以自定义多个按钮及事

鼠标拖动 自定义弹出框

/*设置自定义弹出框可移动*/jQuery(document).ready( function () { $('.popmodal .popheader').mousedown( function (event) { var isMove = true; var abs_x = event.pageX - $(this).offset().left; var abs_y = event.pageY - $(this).offset().top; $(document).mousemove(fun

Validform自定义提示效果-使用自定义弹出框

$(function(){ $.Tipmsg.r=null; $("#add").Validform({ tiptype:function(msg){ layer.msg(msg); } }); }) Validform自定义提示效果-使用自定义弹出框

js自定义弹出框

js自定义弹出框: 代码如下 <html> <head><title>自定义弹出对话框</title> <style type ="text/css" > .layout { width:2000px; height:400px; border:solid 1px red; text-align:center; } </style> <script type="text/javascript&quo

微信小程序-自定义底部导航

代码地址如下:http://www.demodashi.com/demo/14258.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html 1.基本需求. 实现用户自定义底部导航 2.案例目录结构 二.程序实现具体步骤 1.自定义nav.wxml代码 <template name="nav"> <view class=&quo

值得记录的(五)- 微信小程序自定义 tabbar

一定的需求情况下,无法使用小程序原生的 tabbar 的时候,需要自行实现一个和 tabbar 功能一模一样的自制组件. 查阅了海量的博客和文档之后,亲自踩坑.总结了三种在不使用微信小程序原生 tabbar的情况下自制 tabbar 的方法.并说说这几种方法各自的特色. 类 navigator 跳转方式 类 navigator 跳转方式是我自己起的名称,因为它的实现思路就是这个样子的.期初参考 微信小程序自定义tabBar组件开发 这篇博文的思路.进行了这种方式的尝试,并为后续提供了解决思路.在

微信小程序自定义导航栏(wx_custom_navigation_bar) 自定义返回键、首页键,动态设置标题,响应式组件

微信小程序自定义导航栏 navigation bar 返回键 首页 github: https://github.com/chen-yt/wx_custom_navigation_bar https://github.com/Superman2113/wx_custom_navigation_bar 代码 navbar组件 navbar.wxml <view class="navbar" style="{{'height: ' + navigationBarHeight