我的解決方法是一個(gè)y軸方向的scroll-view
里面嵌套一個(gè)x軸方向的scroll-view
,綠色部分絕對定位,top
值動(dòng)態(tài)修改。
<!-- 紫色框,可上下滑動(dòng)的 scroll-view-->
<scroll-view class="quotation-wrapper" style="height:{{wHeight}}px;" scroll-y="true" bindscroll="scroll" bindscrolltoupper="scrolltoupper" bindscrolltolower="scrolltolower">
<!-- 藍(lán)色部分-固定 -->
<view class="left-wrapper">
<view class="left-th" style="{{leftThStyle}}">名稱</view>
<view wx:for="{{text}}" wx:key="{{item.rank}}">
<view class="left-item"><view class="rank">{{item.rank}}</view>{{item.symbol}}</view>
</view>
</view>
<!-- 粉色部分,可左右滑動(dòng)的 scroll-view -->
<scroll-view class="right-wrapper" scroll-x="true">
<view class="right-th" style="{{thStyle}}">
<view class="right-td">流通市值</view>
<view class="right-td">價(jià)格</view>
<view class="right-td">流通數(shù)量</view>
<view class="right-td">成交額</view>
<view class="right-td">漲幅(24h)</view>
<view class="right-td">漲幅(7d)</view>
</view>
<block wx:for="{{text}}" wx:key="{{item.rank}}">
<view class="right-item">
<view class="right-item-prop">{{filter.format8(item.marketCapType)}}</view>
<view class="right-item-prop">{{filter.formatUndefined(item.priceType)}}</view>
<view class="right-item-prop">{{filter.format4(item.availableSupply)}}</view>
<view class="right-item-prop">{{filter.format4(item.data24hVolumeType)}}</view>
<view wx:if="{{item.percentChange24h > 0}}" class="right-item-prop" style="color:green;">+{{item.percentChange24h}}</view>
<view wx:if="{{item.percentChange24h < 0}}" class="right-item-prop" style="color:red;">{{item.percentChange24h}}</view>
<view wx:if="{{item.percentChange7d > 0}}" class="right-item-prop" style="color:green;">+{{item.percentChange7d}}</view>
<view wx:if="{{item.percentChange7d < 0}}" class="right-item-prop" style="color:red;">{{item.percentChange7d}}</view>
</view>
</block>
</scroll-view>
</scroll-view>
Page({
data: {
text: quotationList,
wHeight: 0,
thStyle: 'position: absolute;top: 0;left: 0;'
},
onLoad: function() {
var that = this
wx.getSystemInfo({
success: function(res) {
that.setData({
// 設(shè)置紫色框 scroll-view 的高度
wHeight: (res.windowHeight - 40)
})
}
})
},
//滾動(dòng)過程中觸發(fā),設(shè)置 top 值為 scrollTop 值
scroll: function(e) {
this.setData({
thStyle: 'position: absolute;top:' + e.detail.scrollTop + 'px;left: 0;',
leftThStyle: 'position: absolute;top:' + e.detail.scrollTop + 'px;left: 0;'
})
}
})
由于綠色部分(表頭)定位的top值是上下滑動(dòng)時(shí)使用setData
來改變的,所以會(huì)一直觸發(fā)setData
,造成滑動(dòng)卡頓不流暢。
想問問有沒有好一些的解決辦法。不局限于這個(gè)布局,更改布局能實(shí)現(xiàn)相同的效果也是可以的。
感謝!!
這個(gè)問題最終沒有解決。
考慮到這個(gè)布局比較復(fù)雜,后續(xù)可能不好維護(hù),和小程序輕量的定位,所以換了另外一種普通的方式來展示數(shù)據(jù)。
樓主已經(jīng)換了公司,后續(xù)來的同學(xué)不用再浪費(fèi)時(shí)間跟我要代碼了,就這樣。
感覺不需要那么麻煩,我直接用css寫一下
<view class="top">111</view>
<view class="wrapper">
<view class="main">
<view class="left">
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
<view class="line">1</view>
</view>
<view class="right">
<view class="right-wrapper">
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
<view class="line">123456789123456789123456789123456789123456789123456789123456789123456789123456789</view>
</view>
</view>
</view>
</view>
.top{
position: fixed;
background: aquamarine;
top: 0;
left: 0;
right: 0;
height: 50rpx;
text-align: center;
z-index: 1;
}
.wrapper{
padding-top: 50rpx;
width: 750rpx;
overflow-x: hidden;
position: relative;
}
.left{
position: absolute;
width: 100rpx;
}
.right{
padding-left: 100rpx;
width: 650rpx;
}
.right-wrapper{
width: 1000rpx;
overflow-x: auto;
}
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。