• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    微信小程序實現彈出菜單功能

    來源:懂視網 責編:小采 時間:2020-11-27 22:12:59
    文檔

    微信小程序實現彈出菜單功能

    微信小程序實現彈出菜單功能:需求 點擊標簽欄按鈕,向下彈出菜單,再次點擊,收回菜單 要解決的問題 標簽欄三欄樣式,標簽欄固定不動; 點擊標簽欄彈出菜單,并且出現透明遮罩; 遮罩優先級在彈出框之下; 彈出框內標簽的設置; 滾動欄滾動條的隱藏 如何解決? 彈性布局,橫向,
    推薦度:
    導讀微信小程序實現彈出菜單功能:需求 點擊標簽欄按鈕,向下彈出菜單,再次點擊,收回菜單 要解決的問題 標簽欄三欄樣式,標簽欄固定不動; 點擊標簽欄彈出菜單,并且出現透明遮罩; 遮罩優先級在彈出框之下; 彈出框內標簽的設置; 滾動欄滾動條的隱藏 如何解決? 彈性布局,橫向,

    需求

    點擊標簽欄按鈕,向下彈出菜單,再次點擊,收回菜單

    要解決的問題

    1. 標簽欄三欄樣式,標簽欄固定不動;
    2. 點擊標簽欄彈出菜單,并且出現透明遮罩;
    3. 遮罩優先級在彈出框之下;
    4. 彈出框內標簽的設置;
    5. 滾動欄滾動條的隱藏

    如何解決?

    1. 彈性布局,橫向,三者平分整欄;
    2. 狀態監聽點擊事件,數據控制hide或者show,通過rgba設置透明度
    3. 彈出框設置z-index;
    4. 彈性布局flex 橫向排列 超出后wrap 然后space-around控制間距
    ::-webkit-scrollbar {
    width: 0;
    height: 0;
    color: transparent;
    }

    具體實現

    wxml

    <import src="../../templates/template" />
    <view class="container {{isMask?'mask':''}}">
     <view class="header">
     <view class="filterCity {{status=='1' && isActive?'active':''}}" data-status='1' bindtap="changeStatus">
     <view class="city">城市篩選</view>
     <image src="{{status=='1' && isActive?'../../youzan-image/red-up.png':'../../youzan-image/down.png'}}" />
     </view>
     <view class="filterJob {{status=='2' && isActive?'active':''}}" data-status='2' bindtap="changeStatus">
     <view class="job">職位篩選</view>
     <image src="{{status=='2' && isActive?'../../youzan-image/red-up.png':'../../youzan-image/down.png'}}" />
     </view>
     <view class="filterOrder {{status=='3'&& isActive?'active':''}}" data-status='3' bindtap="changeStatus">
     <view class="order">排序方式</view>
     <image src="{{status=='3' && isActive?'../../youzan-image/red-up.png':'../../youzan-image/down.png'}}" />
     </view>
     </view>
     <block wx:if="{{isActive==true&&status=='1'}}">
     <view class="cityContainer">
     <block wx:for="{{city}}" wx:key="id" wx:for-index="index">
     <view class="city {{isSelect&&index==curIndex?'select':''}}" data-index="{{index}}" bindtap="select">{{item}}</view>
     </block>
     </view>
     </block>
     <block wx:if="{{isActive==true&&status=='2'}}">
     <scroll-view scroll-y="true" class="posContainer">
     <block wx:for="{{cur}}" data-index='index' wx:for-index='index' wx:key="index">
     <view class="title">{{item.title}}</view>
     <view class="poscontent">
     <view wx:for="{{item.types}}" wx:for-item="type" wx:key='id' wx:for-index="{{index}}" data-index="{{index}}">
     <view class="tag {{isSelect&&index==curIndex?'select':''}}" data-id="{{id}}" bindtap="multiSelect">{{type}}</view>
     </view>
     </view>
     </block>
     <view class="confirm">
     <button class="weui-btn" type="warn">確認</button>
     </view>
     </scroll-view>
     </block>
     <block wx:if="{{isActive==true&&status=='3'}}">
     <view class="orderContainer">
     <view class="block">智能排序</view>
     <view class="block">時間排序</view>
     <view class="block">薪資排序</view>
     </view>
     </block>
     <view class="listContainer" >
     <view wx:for="{{jobList}}" wx:key="index" data-index="{{index}}">
     <template is="list-item" data="{{...item}}" />
     </view>
     </view>
     <view class="search " bindtap="search">
     <image src="../../youzan-image/search.png" />
     <text>搜索</text>
     </view>
    </view>

    wxss

    page {
     position: relative;
     width: 100%;
     height: 100vh;
    }
    
    .header {
     width: 100%;
     height: 80rpx;
     position: fixed;
     top: 0;
     display: flex;
     flex-direction: row;
     justify-content: space-between;
     text-align: center;
     color: #313131;
     font-size: 16px;
     border-bottom: 1rpx solid #eeeeee;
     z-index: 9999;
     background-color: #fff;
    }
    
    .filterCity {
     flex: 1;
     position: relative;
     height: 80rpx;
     line-height: 80rpx;
    }
    
    .filterJob {
     position: relative;
     flex: 1;
     height: 80rpx;
     line-height: 80rpx;
    }
    
    .filterOrder {
     position: relative;
     flex: 1;
     height: 80rpx;
     line-height: 80rpx;
    }
    
    .header image {
     position: absolute;
     right: 15rpx;
     top: 26rpx;
     width: 30rpx;
     height: 30rpx;
    }
    
    .active {
     color: #ef0001;
    }
    
    .mask {
     width: 100%;
     height: 100%;
     position: fixed;
     top: 80rpx;
     background-color: rgba(15, 15, 26, 0.3);
    }
    
    .cityContainer {
     display: flex;
     flex-direction: row;
     justify-content: space-around;
     align-items: space-between;
     flex-wrap: wrap;
     width: 100%;
     height: 300rpx;
     z-index: 999;
     background-color: #fff;
     border-bottom: 1rpx solid #e9e9e9;
     padding-bottom: 130rpx;
    }
    
    .cityContainer .city {
     display: block;
     font-size: 15px;
     margin-top: 100rpx;
     width: 150rpx;
     height: 50rpx;
     line-height: 50rpx;
     text-align: center;
     border: 1rpx solid #e9e9e9;
     overflow: hidden;
    }
    .select {
     color: #ffffff;
     background-color: #ed0000;
    }
    .posContainer {
     height: 980rpx;
     width: 100%;
     background-color: #fff;
     /* overflow:auto; */
    }
    ::-webkit-scrollbar {
     width: 0;
     height: 0;
     color: transparent;
    }
    .title {
     margin-top: 55rpx;
     font-size: 15px;
     margin-left: 28rpx;
    }
    .poscontent {
     width: 100%;
     display: flex;
     flex-direction: row;
     justify-content: flex-start;
     flex-wrap: wrap;
     margin-top: -15rpx;
    }
    .tag {
     margin-left: 28rpx;
     margin-top: 23rpx;
     font-size: 13px;
     width: 150rpx;
     height: 50rpx;
     line-height: 50rpx;
     text-align: center;
     border: 1rpx solid #e9e9e9;
    }
    .confirm {
     width: 100%;
     height: 150rpx;
     border: 1rpx solid transparent;
     background-color: #fff;
    }
    .weui-btn {
     position: fixed;
     width: 95%;
     bottom: 52rpx;
     left: 50%;
     transform: translateX(-50%);
    }
    .orderContainer {
     display: flex;
     flex-direction: row;
     justify-content: space-around;
     align-items: center;
     background-color: #fff;
     width: 100%;
     height: 125rpx;
    }
    .block {
     font-size: 13px;
     width: 200rpx;
     height: 50rpx;
     line-height: 50rpx;
     text-align: center;
     border: 1rpx solid #e9e9e9;
    }
    .search {
     position: fixed;
     bottom: 80rpx;
     background-color: #fff;
     right: 25rpx;
     width: 150rpx;
     height: 75rpx;
     line-height: 75rpx;
     text-align: center;
     border-radius: 35rpx;
     box-shadow: 1rpx 1rpx 7rpx 7rpx #f5f5f5;
    }
    .search image {
     width: 30rpx;
     height: 30rpx;
    }
    .search text {
     font-size: 15px;
     padding-left: 9rpx;
     color: #666666;
    }
    .listContainer {
     width: 100%;
     height: 100%;
     margin-top: 80rpx;
    }

    js

    import category from '../../api/employ'
    import jobList from '../../api/detail'
    Page({
     data: {
     curIndex: '',
     isActive: false,
     jobList:[],
     cur: [],
     job: [],
     isShow: true,
     status: 0,
     isMask: false,
     isSelect: false,
     city: ['全國', '杭州', '北京', '深圳', '上海', '廣州', '武漢', '重慶']
     },
     changeStatus(e) {
     let status = e.currentTarget.dataset.status;
     let cur = category;
     this.setData({
     isActive: !this.data.isActive,
     status: status,
     isMask: !this.data.isMask,
     cur: cur,
     })
     },
     select(e) {
     let curIndex = e.currentTarget.dataset.index;
     this.setData({
     isSelect: " curIndex == this.data.curIndex ? '!this.data.isActive' : 'true' ",
     isActive: false,
     isMask:false,
     curIndex: curIndex,
     })
     },
     multiSelect(e){
     let multiIndex=e.currentTarget.dataset.index;
     this.setData({
     isSelect:!this.data.isSelect,
     curIndex:multiIndex
     })
     },
     search(e) {
     wx.navigateTo({
     url: '../search/search',
     })
     },
     onLoad: function (e) {
     this.setData({
     jobList:jobList
     })
     },
     click:function (e) {
     let id =e.currentTarget.dataset.id;
     wx.navigateTo({
     url: `../detail/detail?id=${id}`,
     })
     }
    })

    總結

    以上所述是小編給大家介紹的微信小程序實現彈出菜單功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    微信小程序實現彈出菜單功能

    微信小程序實現彈出菜單功能:需求 點擊標簽欄按鈕,向下彈出菜單,再次點擊,收回菜單 要解決的問題 標簽欄三欄樣式,標簽欄固定不動; 點擊標簽欄彈出菜單,并且出現透明遮罩; 遮罩優先級在彈出框之下; 彈出框內標簽的設置; 滾動欄滾動條的隱藏 如何解決? 彈性布局,橫向,
    推薦度:
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 久久99精品久久久久久hb无码| 国产精品美女一区二区视频| 亚洲AV永久纯肉无码精品动漫| 久久免费精品一区二区| 最新精品露脸国产在线 | 99精品视频在线观看婷| 国产精品99精品无码视亚| 欧美ppypp精品一区二区| 老司机国内精品久久久久| 亚洲AV无码精品色午夜果冻不卡 | 亚洲国产第一站精品蜜芽| 精品露脸国产偷人在视频| 中文字幕亚洲综合精品一区| 国产精品免费一区二区三区四区| 合区精品久久久中文字幕一区| 国产精品v欧美精品v日本精| 久久精品国产精品国产精品污| 精品无码国产污污污免费网站| 亚洲精品无码AV人在线播放| 欧美成人精品高清视频在线观看 | 99国内精品久久久久久久| 500av大全导航精品| 国内精品久久久久久99蜜桃 | 国产精品亚洲片在线观看不卡| 亚洲精品无码不卡在线播放HE| 免费视频精品一区二区| 久久精品亚洲福利| 久久久国产精品| 精品欧美小视频在线观看| 91久久精品视频| 先锋影音国产精品| 亚洲精品免费在线观看| 四虎精品免费永久在线| 亚洲综合精品香蕉久久网97| 日韩精品一区二区三区四区| 久久免费国产精品一区二区| 日韩精品在线看| 国产精品内射久久久久欢欢| 99热成人精品免费久久| 国产精品永久免费| 久久精品国产一区二区|