小程序?qū)崿F(xiàn)錨點(diǎn)滑動(dòng)效果
要在小程序中實(shí)現(xiàn)錨點(diǎn)的話(huà),就要用到<scroll-view > 標(biāo)簽中的,scroll-into-view,詳情可見(jiàn)文檔
wxml:
<view class='scroll-box' style='height:{{ht}}px;'>
<scroll-view scroll-y class='menu-tab' scroll-into-view="{{toView}}" scroll-with-animation="true">
<block wx:for="{{tabList}}" wx:key="">
<view class='item-tab {{item.checked ? "item-act":""}}' id="t{{index}}" data-index="{{index}}" bindtap='intoTab'>{{item.title}}</view>
</block>
</scroll-view>
<scroll-view scroll-y style='height:{{ht}}px;'
scroll-with-animation="true"
bindscrolltoupper="upper"
bindscrolltolower="lower"
bindscroll="scrollRight"
scroll-into-view="{{toViewRt}}">
<block wx:for="{{contList}}" wx:key="">
<view class='cont-box' id="t{{index}}" style='height:{{ht}}px;'>{{item.cont}}</view>
</block>
</scroll-view>
</view>
wxss:
.scroll-box{display: flex;flex-wrap: nowrap;}
.menu-tab{
width: 180rpx;
text-align: center;
height: 100%;
color: #666;
border-right:1rpx solid #999
}
.item-tab{
font-size:28rpx;
padding:8rpx;
}
.cont-box{
border-top: 1px solid;
box-sizing: border-box;
}
.item-act{
background: linear-gradient(to bottom right, #6C53B1 , #8B2EDF);
color: #fff;
border-radius: 100px;
}
js:
var app = getApp();
Page({
data: {
current: 0,
// 左側(cè)菜單
tabList: [
{ title: 'tab1', checked: true },
{ title: 'tab2', checked: false },
{ title: 'tab3', checked: false },
{ title: 'tab4', checked: false },
{ title: 'tab5', checked: false },
{ title: 'tab6', checked: false },
],
// 右側(cè)內(nèi)容
contList: [
{ cont: 'tab1'},
{ cont: 'tab2'},
{ cont: 'tab3'},
{ cont: 'tab4'},
{ cont: 'tab5'},
{ cont: 'tab6'},
],
},
// 循環(huán)切換
forTab(index) {
let lens = this.data.tabList.length;
let _id = 't' + index;
for (let i = 0; i < lens; i++) {
this.data.tabList[i]['checked'] = false;
}
this.data.tabList[index]['checked'] = true;
this.setData({
tabList: this.data.tabList,
toView: _id,
current: index
});
},
// 點(diǎn)擊左側(cè)菜單欄
intoTab(e) {
let lens = this.data.tabList.length;
let _index = e.currentTarget.dataset.index;
this.forTab(_index);
let _id = 't' + _index;
this.setData({
toViewRt: _id
});
},
// 滾動(dòng)右側(cè)菜單
scrollRight(e) {
//console.log(e)
let _top = e.detail.scrollTop;
let progress = parseInt(_top / this.data.ht); // 計(jì)算出 當(dāng)前的下標(biāo)
if (progress > this.data.current) { // 向上拉動(dòng)屏幕
this.setData({ current: progress });
this.forTab(this.data.current);
} else if (progress == this.data.current) {
return false;
} else { // 向下拉動(dòng)屏幕
this.setData({
current: progress == 0 ? 0 : progress--
});
this.forTab(progress);
}
},
onLoad: function (options) {
console.log(this.data.tabList)
// 框架尺寸設(shè)置
wx.getSystemInfo({
success: (options) => {
var wd = options.screenWidth; // 頁(yè)面寬度
var ht = options.windowHeight; // 頁(yè)面高度
this.setData({ wd: wd, ht: ht })
}
});
},
onShow: function () {
// 初始化狀態(tài)
this.setData({
toView: 't' + this.data.current,
toViewRt: 't' + this.data.current
})
},
})
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 微信小程序?qū)崿F(xiàn)錨點(diǎn)定位功能的方法實(shí)例
- 微信小程序?qū)崿F(xiàn)錨點(diǎn)跳轉(zhuǎn)
- 微信小程序scroll-view實(shí)現(xiàn)滾動(dòng)到錨點(diǎn)左側(cè)導(dǎo)航欄點(diǎn)餐功能(點(diǎn)擊種類(lèi),滾動(dòng)到錨點(diǎn))
- 微信小程序 scroll-view 實(shí)現(xiàn)錨點(diǎn)跳轉(zhuǎn)功能
- 微信小程序scroll-view錨點(diǎn)鏈接滾動(dòng)跳轉(zhuǎn)功能
- 微信小程序?qū)崿F(xiàn)錨點(diǎn)功能
- 微信小程序 scroll-view實(shí)現(xiàn)錨點(diǎn)滑動(dòng)的示例
- 微信小程序?qū)崿F(xiàn)錨點(diǎn)定位樓層跳躍的實(shí)例
- 微信小程序商城分類(lèi)滾動(dòng)列表錨點(diǎn)的項(xiàng)目實(shí)踐
相關(guān)文章
10行代碼實(shí)現(xiàn)微信小程序滑動(dòng)tab切換
這篇文章主要為大家詳細(xì)介紹了10行代碼實(shí)現(xiàn)微信小程序滑動(dòng)tab切換效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12
javascript實(shí)現(xiàn)的樣式表(CSS) 格式整理與壓縮
javascript實(shí)現(xiàn)的樣式表(CSS) 格式整理與壓縮,可以分為多行與單行,非常不錯(cuò)。2010-05-05
ionic+html5+API實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用
這篇文章主要為大家詳細(xì)介紹了ionic+html5+API實(shí)現(xiàn)雙擊返回鍵退出應(yīng)用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09
JavaScript獲取移動(dòng)設(shè)備型號(hào)的實(shí)現(xiàn)代碼(JS獲取手機(jī)型號(hào)和系統(tǒng))
這篇文章主要介紹了JavaScript獲取移動(dòng)設(shè)備型號(hào)的實(shí)現(xiàn)代碼,需要的朋友可以參考下2018-03-03
基于JS實(shí)現(xiàn)簡(jiǎn)單滑塊拼圖游戲
本文通過(guò)實(shí)例代碼給大家介紹了JS實(shí)現(xiàn)簡(jiǎn)單滑塊拼圖游戲,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-10-10
javascript新建標(biāo)簽,判斷鍵盤(pán)輸入,以及判斷焦點(diǎn)(示例代碼)
這篇文章主要介紹了javascript新建標(biāo)簽,判斷鍵盤(pán)輸入,以及判斷焦點(diǎn)(示例代碼)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-11-11
artdialog的圖片/標(biāo)題以及關(guān)閉按鈕不顯示的解決方法
正如標(biāo)題所言不顯示的原因是因其它c(diǎn)ss樣式文件中包含div{ overflow:hidden; }引起的artdialog的圖片以及關(guān)閉按鈕不顯示,具體的解決方法如下,感興趣的朋友可以參考下哈2013-06-06
js實(shí)現(xiàn)點(diǎn)擊鏈接后窗口縮小并居中的方法
這篇文章主要介紹了js實(shí)現(xiàn)點(diǎn)擊鏈接后窗口縮小并居中的方法,實(shí)例分析了javascript操作窗口的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03

