欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序自定義組件實(shí)現(xiàn)單選功能

 更新時(shí)間:2022年07月19日 10:05:46   作者:HZR_497  
這篇文章主要為大家詳細(xì)介紹了微信小程序自定義組件實(shí)現(xiàn)單選功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了微信小程序自定義組件實(shí)現(xiàn)單選的具體代碼,供大家參考,具體內(nèi)容如下

效果圖:

調(diào)用部分(例如在index頁面)

index.wxml

<view catchtap="showSinger">
? 單選按鈕
? <singer id="singer" bind:singerCancel="_singerCancel" bind:singerConfirm="_singerConfirm" singerContent='{{singerContent}}' singer_list="{{singer_list}}">
? </singer>
</view>

index.js

Page({
?
? /**
? ?* 頁面的初始數(shù)據(jù)
? ?*/
? data: {
??
? ? singerContent: '單選按鈕',
? ? singer_list: [{
? ? ? key: "100以下",
? ? ? name: "100以下"
? ? }, {
? ? ? key: "200以下",
? ? ? name: "200以下"
? ? }, {
? ? ? key: "300以下",
? ? ? name: "300以下"
? ? }, {
? ? ? key: "400以下",
? ? ? name: "400以下"
? ? }, {
? ? ? key: "500以下",
? ? ? name: "500以下"
? ? }, {
? ? ? key: "600以下",
? ? ? name: "600以下"
? ? }, {
? ? ? key: "700以下",
? ? ? name: "700以下"
? ? }, {
? ? ? key: "800以下",
? ? ? name: "800以下"
? ? }, {
? ? ? key: "900以下",
? ? ? name: "900以下"
? ? }, {
? ? ? key: "1000以下",
? ? ? name: "1000以下"
? ? }],
?
? ?
? },
?
? /**
? ?* 生命周期函數(shù)--監(jiān)聽頁面初次渲染完成
? ?*/
? onReady: function() {
? ? //獲得input_select組件
? ? this.input_select = this.selectComponent("#input_select");
?
? ? //獲得singer組件 單選
? ? this.singer = this.selectComponent("#singer");
?
? ? //獲得multiple組件 ?多選
? ? this.multiple = this.selectComponent("#multiple");
? },
?
?
? //**************************************單選自定義組件部分************************
? showSinger: function() {
? ? this.singer.showSinger();
? },
?
? //取消事件
? _singerCancel() {
? ? console.log('你點(diǎn)擊了取消');
? ? this.singer.hideSinger();
? },
? //確認(rèn)事件
? _singerConfirm(e) {
? ? console.log('你點(diǎn)擊了確定==', e.detail);
? ? this.singer.hideSinger();
? },
?
})

index.json

{
? "usingComponents": {
? ? "singer": "/component/selector/singer/singer",
? }
}

自定義組件部分(命名為singer)

singer.wxml

<!--component/selector/singer.wxml-->
<view class='singer-bg' wx:if="{{isShow}}">
? <view class='singer-body'>
? ? <view class='singer-body-name'>
? ? ? <view class='singer-body-name-line'></view>
? ? ? <view class='singer-body-name-txt'>{{singerContent}}</view>
? ? ? <view class='singer-body-name-line'></view>
? ? </view>
? ? <view class='singer-body-list'>
? ? ? <block wx:for="{{singer_list}}" wx:for-item="item" wx:key="unique">
? ? ? ? <view class='list-item-choosed' wx:if="{{choose_type==item.key}}" data-key='{{item.key}}' bindtap='clicktype'>
? ? ? ? ? <view class='item-choosed-txt'>{{item.name}}</view>
? ? ? ? </view>
? ? ? ? <view class='list-item' data-key='{{item.key}}' bindtap='clicktype' wx:else>
? ? ? ? ? <view class='item-txt'>{{item.name}}</view>
? ? ? ? </view>
? ? ? </block>
? ? </view>
? ? <view class='singer-body-kongbai'></view>
? ? <view class='singer-body-icon'>
? ? ? <view class='icon-left' catchtap='_singerCancel'>重置</view>
? ? ? <view class='icon-right' catchtap='_singerConfirm'>確定</view>
? ? </view>
? </view>
</view>

singer.js

Component({
? /**
? ?* 組件的屬性列表
? ?*/
? properties: {
? ? //標(biāo)題文字
? ? singerContent: {
? ? ? type: String,
? ? ? value: ''
? ? },
? ? singer_list: {
? ? ? type: Array,
? ? ? value: [{
? ? ? ? key: '',
? ? ? ? name: ''
? ? ? }, ]
? ? }
? },
?
? /**
? ?* 組件的初始數(shù)據(jù)
? ?*/
? data: {
? ? isShow: false,
? ? choose_type: "",
? },
? onLoad: function() {
? ? this.properties
? },
? /**
? ?* 組件的方法列表
? ?*/
? methods: {
? ? clicktype: function(e) {
? ? ? this.setData({
? ? ? ? choose_type: e.currentTarget.dataset.key,
? ? ? })
? ? },
? ? //隱藏彈框
? ? hideSinger: function() {
? ? ? this.setData({
? ? ? ? isShow: false,
? ? ? ? json: {
? ? ? ? ? start: "",
? ? ? ? ? end: "",
? ? ? ? }
? ? ? })
? ? },
? ? //展示彈框
? ? showSinger: function() {
? ? ? this.setData({
? ? ? ? isShow: true,
? ? ? })
? ? },
? ? /*
? ? ?* 內(nèi)部私有方法建議以下劃線開頭
? ? ?* triggerEvent 用于觸發(fā)事件
? ? ?*/
? ? _singerCancel() {
? ? ? //觸發(fā)取消回調(diào)
? ? ? this.triggerEvent("singerCancel")
? ? },
? ? _singerConfirm() {
? ? ? //觸發(fā)成功回調(diào)
? ? ? this.triggerEvent("singerConfirm", this.data.choose_type);
? ? }
? }
})

singer.json

{
? "component": true
}

singer.wxss

/* component/selector/singer.wxss */
?
.singer-bg {
? width: 100%;
? height: 100%;
? position: fixed;
? top: 0;
? left: 0;
? z-index: 9999;
? background: rgba(0, 0, 0, 0.5);
}
?
.singer-bg .singer-body {
? min-width: 100%;
? width: 100%;
? height: 968rpx;
? max-height: 968rpx;
? background: rgba(255, 255, 255, 1);
? border-radius: 20px 20px 0px 0px;
? position: absolute;
? left: 0;
? bottom: 0;
}
?
.singer-bg .singer-body .singer-body-name {
? width: 100%;
? display: flex;
? flex-wrap: nowrap;
? justify-content: center;
? align-items: center;
? margin-top: 60rpx;
? margin-bottom: 50rpx;
}
?
.singer-bg .singer-body .singer-body-name .singer-body-name-line {
? width: 260rpx;
? border-bottom: 2rpx solid rgba(240, 240, 240, 1);
}
?
.singer-bg .singer-body .singer-body-name .singer-body-name-txt {
? height: 48rpx;
? font-size: 34rpx;
? font-family: PingFangSC-Medium;
? font-weight: 500;
? color: rgba(0, 0, 0, 1);
? line-height: 48rpx;
? margin-left: 10rpx;
? margin-right: 10rpx;
}
?
.singer-bg .singer-body .singer-body-list {
? width: 100%;
? max-height: 650rpx;
? display: flex;
? flex-direction: row;
? align-items: flex-start;
? flex-wrap: wrap;
? padding: 0rpx 10rpx 0rpx 40rpx;
? overflow: auto;
}
?
.singer-bg .singer-body .singer-body-list .list-item-choosed {
? width: 182rpx;
? height: 70rpx;
? display: flex;
? justify-content: center;
? align-items: center;
? background: rgba(191, 213, 236, 1);
? border-radius: 6rpx;
? margin-right: 30rpx;
? margin-bottom: 20rpx;
? padding: 0rpx 10rpx 0rpx 10rpx;
}
?
.singer-bg .singer-body .singer-body-list .list-item-choosed .item-choosed-txt {
? font-size: 30rpx;
? font-family: PingFangSC-Regular;
? font-weight: 400;
? line-height: 70rpx;
? color: rgba(0, 89, 179, 1);
? display: -webkit-box;
? word-break: break-all;
? text-overflow: ellipsis;
? overflow: hidden;
? -webkit-box-orient: vertical;
? -webkit-line-clamp: 1;
}
?
/**/
?
.singer-bg .singer-body .singer-body-list .list-item {
? width: 182rpx;
? height: 70rpx;
? display: flex;
? flex-wrap: nowrap;
? justify-content: center;
? align-items: center;
? background: rgba(240, 240, 240, 1);
? border-radius: 6rpx;
? margin-right: 30rpx;
? margin-bottom: 20rpx;
? padding: 0rpx 10rpx 0rpx 10rpx;
}
?
.singer-bg .singer-body .singer-body-list .list-item ?.item-txt {
? font-size: 30rpx;
? font-family: PingFangSC-Regular;
? font-weight: 400;
? color: rgba(51, 51, 51, 1);
? line-height: 70rpx;
? display: -webkit-box;
? word-break: break-all;
? text-overflow: ellipsis;
? overflow: hidden;
? -webkit-box-orient: vertical;
? -webkit-line-clamp: 1;
}
?
.singer-bg .singer-body .singer-body-kongbai {
? width: 100%;
? height: 120rpx;
}
?
.singer-bg .singer-body .singer-body-icon {
? width: 100%;
? height: 110rpx;
? display: flex;
? flex-wrap: nowrap;
? justify-content: space-between;
? position: fixed;
? bottom: 0;
? z-index: 9999999999;
? background: rgba(255, 255, 255, 1);
}
?
.singer-bg .singer-body .singer-body-icon .icon-left {
? width: 374rpx;
? height: 110rpx;
? background: rgba(0, 89, 179, 0.1);
? font-size: 36rpx;
? font-family: PingFangSC-Regular;
? font-weight: 400;
? color: rgba(0, 89, 179, 1);
? line-height: 50rpx;
? display: flex;
? align-items: center;
? justify-content: center;
}
?
.singer-bg .singer-body .singer-body-icon .icon-right {
? width: 374rpx;
? height: 110rpx;
? background: rgba(0, 89, 179, 1);
? font-size: 36rpx;
? font-family: PingFangSC-Regular;
? font-weight: 400;
? color: rgba(255, 255, 255, 1);
? line-height: 50rpx;
? display: flex;
? align-items: center;
? justify-content: center;
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JS畫5角星方法介紹

    JS畫5角星方法介紹

    5角星想必大家并不陌生吧,在本文大家將會(huì)學(xué)習(xí)到使用JS畫5角星,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-09-09
  • 詳解tween.js 中文使用指南

    詳解tween.js 中文使用指南

    本篇文章主要介紹了詳解tween.js 中文使用指南,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-01-01
  • ie下動(dòng)態(tài)加態(tài)js文件的方法

    ie下動(dòng)態(tài)加態(tài)js文件的方法

    接觸過相關(guān)知識(shí)的都知道,動(dòng)態(tài)向DOM中添加js的script標(biāo)簽時(shí),在各種瀏覽器下會(huì)有不同的表現(xiàn)。
    2011-09-09
  • 根據(jù)后端返回的json數(shù)據(jù)快速生成ts類型的實(shí)現(xiàn)代碼

    根據(jù)后端返回的json數(shù)據(jù)快速生成ts類型的實(shí)現(xiàn)代碼

    在前端開發(fā)中,我們通常需要處理來自后端或其他數(shù)據(jù)源的 JSON 數(shù)據(jù),這些數(shù)據(jù)可能非常復(fù)雜,包含不同類型的屬性,甚至嵌套對(duì)象和數(shù)組,為了更好地使用這些數(shù)據(jù),我們希望將其轉(zhuǎn)換為TypeScript類型定義,以獲得類型檢查和代碼智能提示的好處
    2023-10-10
  • uni-app從安裝到卸載的入門教程

    uni-app從安裝到卸載的入門教程

    這篇文章主要介紹了uni-app從安裝到卸載的入門教程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • layui.js實(shí)現(xiàn)的表單驗(yàn)證功能示例

    layui.js實(shí)現(xiàn)的表單驗(yàn)證功能示例

    這篇文章主要介紹了layui.js實(shí)現(xiàn)的表單驗(yàn)證功能,結(jié)合實(shí)例形式分析了基于layui.js的事件監(jiān)聽、驗(yàn)證、判定等相關(guān)操作技巧,需要的朋友可以參考下
    2017-11-11
  • JSP基于Bootstrap分頁顯示實(shí)例解析

    JSP基于Bootstrap分頁顯示實(shí)例解析

    這篇文章主要為大家詳細(xì)介紹了JSP基于Bootstrap分頁顯示實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • fullPage.js和CSS3實(shí)現(xiàn)全屏滾動(dòng)效果

    fullPage.js和CSS3實(shí)現(xiàn)全屏滾動(dòng)效果

    這篇文章主要為大家詳細(xì)介紹了fullPage.js和CSS3實(shí)現(xiàn)全屏滾動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 微信小程序商品詳情頁的底部彈出框效果

    微信小程序商品詳情頁的底部彈出框效果

    這篇文章主要為大家詳細(xì)介紹了微信小程序商品詳情頁的底部彈出框效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • JS前端導(dǎo)出Excel的方法詳解

    JS前端導(dǎo)出Excel的方法詳解

    最近寫管理端的需求,發(fā)現(xiàn)有一個(gè)excel導(dǎo)出的需求,所以正好本文就來和大家分享一下導(dǎo)出excel文件的三種實(shí)現(xiàn)方式,感興趣的小伙伴可以了解一下
    2023-07-07

最新評(píng)論