|
|
楼主 |
发表于 2017-7-21 12:07:33
|
显示全部楼层
前来填坑,献上完美解决方案,重点还是上面说的WXML节点信息
还需要思考的是:如果展示数据量很大呢?一下加载全部显然不是最优的,看来滚动分页这个坑,还是得继续往下填!
WXML
- <scroll-view class="content" scroll-into-view="{{toView}}" scroll-y="true" scroll-with-animation="true" bindscroll="itemScroll">
- <view wx:for="{{act_addList}}">
- <view class="address_top items_wrap {{ 'cateGory'+item.id}}" id="{{ 'inToView'+item.id}}">{{item.region}}</view>
- <view wx:for="{{item.city}}">
- <view class="address_bottom">{{item.name}}</view>
- </view>
- </view>
- </scroll-view>
- <view class="orientation_region">
- <view class="orientation">自动定位</view>
- <block wx:for="{{orientationList}}" >
- <block wx:if="{{curCid == 'inToView'+item.id}}">
- <view class="orientation_city orientation_select" bindtap="scrollToViewFn" data-id="{{item.id}}">{{item.region}}</view>
- </block>
- <block wx:else>
- <view class="orientation_city" bindtap="scrollToViewFn" data-id="{{item.id}}">{{item.region}}</view>
- </block>
- </block>
- </view>
复制代码
JS
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- orientationList: [
- { id: "01", region: "东北" },
- { id: "02", region: "华北" },
- { id: "03", region: "华东" },
- { id: "04", region: "华南" },
- { id: "05", region: "华中" },
- { id: "06", region: "西北" },
- { id: "07", region: "西南" }
- ],
- act_addList: [
- {
- id: "01", region: "东北地区",
- city: [{ id: "0101", name: "白山江源" },
- { id: "0102", name: "白山市" },
- { id: "0103", name: "宾县" },
- { id: "0104", name: "大庆" },
- { id: "0105", name: "测试1" },
- { id: "0106", name: "测试2" },
- { id: "0107", name: "测试3" },
- { id: "0108", name: "测试4" },
- { id: "0109", name: "测试5" },
- { id: "0110", name: "测试6" },
- ]
- },
- {
- id: "02", region: "华北地区",
- city: [{ id: "0201", name: "包头" },
- { id: "0202", name: "保定" },
- { id: "0206", name: "测试2" },
- { id: "0207", name: "测试3" },
- { id: "0208", name: "测试4" },
- { id: "0209", name: "测试5" },
- { id: "0210", name: "测试6" },
- ]
- },
- {
- id: "03", region: "华东地区",
- city: [{ id: "0303", name: "开封市" },
- { id: "3104", name: "安阳市" },]
- },
- {
- id: "04", region: "华南地区",
- city: [
- { id: "0401", name: "黑龙江市" },
- { id: "0407", name: "测试3" },
- { id: "0508", name: "测试4" },
- { id: "0609", name: "测试5" },
- { id: "0710", name: "测试6" },
- { id: "0711", name: "测试8" },
- { id: "0712", name: "测试9" },
- { id: "0713", name: "测试10" },
- { id: "0714", name: "测试11" },
- ]
- },
- { id: "05", region: "华中地区", city: [{ id: "0501", name: "黑龙江市" }] },
- {
- id: "06", region: "西北地区",
- city: [{ id: "0603", name: "开封市" },
- { id: "0604", name: "安阳市" },]
- },
- {
- id: "07", region: "西南地区",
- city: [{ id: "0703", name: "开封市" },
- { id: "0704", name: "安阳市" },
- { id: "0401", name: "黑龙江市" },
- { id: "0407", name: "测试3" },
- { id: "0508", name: "测试4" },
- { id: "0609", name: "测试5" },
- { id: "0710", name: "测试6" },
- { id: "0711", name: "测试8" },
- { id: "0712", name: "测试9" },
- { id: "0713", name: "测试10" },
- { id: "0714", name: "测试11" },
- { id: "0401", name: "黑龙江市" },
- { id: "0407", name: "测试3" },
- { id: "0508", name: "测试4" },
- { id: "0609", name: "测试5" },
- { id: "0710", name: "测试6" },
- { id: "0711", name: "测试8" },
- { id: "0712", name: "测试9" },
- { id: "0713", name: "测试10" },
- { id: "0714", name: "测试11" },
- ]
- },
- ],
- toView: 'inToView01',
- curCid: 'inToView01'
- },
- scrollToViewFn: function (e) {
- var _id = e.target.dataset.id;
- this.setData({
- toView: 'inToView' + _id
- })
- },
- itemScroll: function (e) {
- var self = this;
- self.queryMultipleNodes();
- },
- onLoad: function (options) {
- },
- queryMultipleNodes: function(){
- var self = this;
- var query = wx.createSelectorQuery();
- query.selectAll('.items_wrap').boundingClientRect();
- query.selectViewport().scrollOffset();
- query.exec(function(res){
- var scrollSelectCid;
- for (var value of res[0]) {
- if (value.top <= 0) {
- scrollSelectCid = value.id;
- }
- }
- self.setData({
- curCid: scrollSelectCid
- });
- })
- }
- });
复制代码
WXSS
|
|