前言
最近工作上遇到了关于一些微信小程序开发的业务, 今天把遇到的问题总结一下。
目录
- 小程序设置tabbar选中颜色
- 将溢出的文本用省略号代替
- 特定区域滚动到顶部时固定
- 微信小程序select下拉框实现
- wx.navigateBack() 携带参数返回
- 微信小程序 选择器picker的使用
小程序设置tabbar选中颜色
1 2 3 4 5 6 7 8 9 10 11
| 'tabbar': { 'selectedColor': '#4da9ff', 'list': [ { 'pagePath': 'pages/index/index', 'text': '首页', 'iconPath': 'images/index.png', 'selectedIconPath': 'images/index_on.png' } ] }
|
selectedColor
就是被选中tab的字体颜色。
将溢出的文本用省略号代替
先来看看效果:
![省略号代替溢出文本](/images/js/miniProgram/ellipsis.png)
比如有一个很长的文本需要展示:
1
| <view class="text-deal">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</view>
|
但是又只能用一行去显示, 剩下的需要用省略号代替, 那么就可以这样:
1 2 3 4 5 6 7 8 9
| .text-deal{ overflow : hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; word-break: break-all; }
|
特定区域滚动到顶部时固定
先来看看效果:
![固定顶部](/images/js/miniProgram/miniprogramFixedTop.gif)
页面部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| <scroll-view scroll-y scroll-width-animation style="width:100%; height:{{scrollheight}}px" bindscroll="scrollTopFun"> <view wx:for="{{arr}}" wx:for-item="item" wx:key="{{item.id}}"> <view> {{item.name}} <view wx:if="{{item.id == 10}}"> topppppppppppp </view> <view wx:if="{{item.id == 10}}" class="{{top > 252 ? 'topnav' : ''}}"> 我是要固定到顶部的 </view> <view wx:if="{{item.id == 10}}"> downnnnnnnnnnn </view> </view> </view> </scroll-view>
|
js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| data: { arr: [], top: 0, scrollheight: '' },
onLoad: function () { var arrT = new Array(); for (var i = 0; i != 50; ++i) { arrT.push({id: i, name: 'abcd'}) } this.setData({ arr: arrT })
var me = this; wx.getSystemInfo({ success: function (res) { me.setData({ scrollheight: res.windowHeight }) } }) },
scrollTopFun(e) { this.setData({ top : e.detail.scrollTop }) console.log(e.detail.scrollTop) }
|
最后是样式部分:
1 2 3 4 5 6 7
| .topnav{ position: fixed; top: 0rpx; z-index:99; background: #fff; width: 100%; }
|
微信小程序select下拉框实现
先来看下效果:
![下拉框](/images/js/miniProgram/miniprogramSelect.gif)
1 2 3 4 5 6 7 8 9 10 11 12 13
| <view class="select-group"> <view>测试下拉框</view> <view class="select-all"> <view class='list-msg2' bindtap='bindShowMsg'> <text>{{tihuoWay}}</text> </view> <view class="select_box" wx:if="{{select}}"> <view class="select_one" bindtap="mySelect" data-name="1">下拉1</view> <view class="select_one" bindtap="mySelect" data-name="2">下拉2</view> <view class="select_one" bindtap="mySelect" data-name="3">下拉3</view> </view> </view> </view>
|
js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| data: { select: false, tihuoWay: '1' },
bindShowMsg() { this.setData({ select: !this.data.select }) },
mySelect(e) { var name = e.currentTarget.dataset.name this.setData({ tihuoWay: name, select: false }) }
|
wxss:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| .select-group { display: flex; flex-direction: row; }
.select-all { display: flex; flex-direction: column; }
.select_box { background-color: #eee; padding: 0 10rpx; width: 100rpx; position: absolute; top: 80rpx; z-index: 1; overflow: hidden; animation: myfirst 0.3s; }
.list-msg2 { height: 60rpx; width: 100rpx; display: flex; align-items: center; justify-content: space-between; border: 1px solid #ccc; padding: 0 10rpx; }
|
wx.navigateBack() 携带参数返回
先来看看效果:
![navigateBack](/images/js/miniProgram/navigateBack.gif)
第一个页面的js:
1 2 3 4 5 6 7 8 9 10
| data: { prePageData: '' },
toNextPage: function() { wx.navigateTo({ url: '/pages/prePage/prePage', }) },
|
第一个页面的wxml:
1 2
| <view bindtap='toNextPage'>到下个页面</view> <view>上个页面的东西: {{prePageData}}</view>
|
第二个页面的js:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| returnToPrePage: function() { var pages = getCurrentPages(); var prePage = pages[pages.length - 2];
prePage.setData({ prePageData: 'hahaha' })
wx.navigateBack({ delta: 1 }) }
|
第二个页面的wxml:
1
| <view bindtap='returnToPrePage'>返回上个页面</view>
|
微信小程序 选择器picker的使用