最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

微信小程序?qū)崿F(xiàn)點擊導航標簽滾動定位到對應位置

 更新時間:2020年11月19日 10:40:45   作者:會唱歌的前端  
這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)點擊導航標簽滾動定位到對應位置,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文要實現(xiàn)的是點擊標簽滾動定位到對應位置,且給在當前板塊范圍指定的導航標簽添加樣式

效果的話看下面GIF

wxml部分

top當前離頂部滾動的距離
block_ScrollTop是當前模塊離頂部的距離,多減60是因為我的導航是懸浮的,會擋住部分內(nèi)容,自行修改;
specify-style是我自定義選中標簽時的樣式,可自行更改;

 <!-- 導航 -->
 <view class='nav' id="tab-con">
 <view class='resume-title'>偉安的簡歷</view>
 <view bindtap="toblock1" class="{{top<block2_ScrollTop-60?'specify-style':''}}">關(guān)于我</view>
 <view bindtap="toblock2" class="{{top>=block2_ScrollTop-60&&top<block3_ScrollTop-60?'specify-style':''}}">工作經(jīng)驗</view>
 <view bindtap="toblock3" class="{{top>=block3_ScrollTop-60?'specify-style':''}}">項目經(jīng)驗</view>
 </view>
 <!-- 中部內(nèi)容 -->
 <view class="body">
 <scroll-view class="list" scroll-y="true" style="height:{{winHeight}}">
 <view id='block_1'>
 <!-- 第一個板塊 -->
 </view>
 <view id='block_2'>
 <!-- 第二個板塊 -->
 </view>
 <view id='block_3'>
 <!-- 第三個板塊 -->
 </view>
 <view id='block_3'>
 <!-- 嗯,高度不夠湊數(shù)的 -->
 </view>
 </scroll-view>
 </view>

wxss選中的字體加粗以及底部三角形樣式參考

用了偽類::before畫了三角形,板塊沒有內(nèi)容所以加了高度。

.nav {
 display: flex;
 justify-content: space-around;
 align-items: center;
 height: 100rpx;
 background-color: rgba(0, 0, 0, 0.2);
 position: fixed;
 top: 0;
 left: 0;
 width: 100%;
 z-index: 9999;
}

.specify-style {
 font-weight: 800;
 position: relative;
}

.specify-style::before {
 content: '';
 border: solid transparent;
 border-width: 0px 14rpx 14rpx 14rpx;
 border-bottom-color: snow;
 position: absolute;
 z-index: 1000;
 margin-top: 36rpx;
 left: 37%;
}

#block_1,
#block_2,
#block_3 {
 height: 70vh;
}

#block_1 {
 background-color: aqua;
}

#block_2 {
 background-color: bisque;
}

#block_3 {
 background-color: cadetblue;
}

js部分

先是在onLoad中拿到自適應winHeight賦值到scroll-view組件;
然后通過createSelectorQuery方法獲取頂部id、板塊一id、板塊二id、板塊三id離頂部的距離;
然后通過onPageScroll方法時時監(jiān)聽獲取當前位置離頂部滾動的距離;
然后通過pageScrollTo實現(xiàn)點擊跳轉(zhuǎn)定位;

Page({
 data: {
 //當前離頂部滾動的距離
 top: 0,
 },
 // 監(jiān)聽滾動事件 scrollTop 滾動的距離
 onPageScroll: function (e) { // 獲取滾動條當前位置
 // console.log(e)
 this.setData({
 top: e.scrollTop
 })
 if (e.scrollTop > this.data.tabScrollTop) {
 this.setData({
 tabFixed: true
 })
 // console.log("我鎖定了")
 } else {
 this.setData({
 tabFixed: false
 })
 }
 },
 //點擊跳轉(zhuǎn)到板塊一
 toblock1: function () {
 wx.pageScrollTo({
 /*
 *多減50是因為我的導航是懸浮的,會擋住部分內(nèi)容
 *這里是1等于2rpx
 */
 scrollTop: this.data.block1_ScrollTop - 50
 })
 },
 //點擊跳轉(zhuǎn)到板塊二
 toblock2: function () {
 wx.pageScrollTo({
 scrollTop: this.data.block2_ScrollTop - 50
 })
 },
 //點擊跳轉(zhuǎn)到板塊三
 toblock3: function () {
 wx.pageScrollTo({
 scrollTop: this.data.block3_ScrollTop - 50
 })
 },
 onLoad: function (options) {
 let that = this
 // 高度自適應
 wx.getSystemInfo({
 success: function (res) {
 var clientHeight = res.windowHeight,
  clientWidth = res.windowWidth,
  rpxR = 750 / clientWidth;
 var calc = clientHeight * rpxR;
 that.setData({
  winHeight: calc
 });
 }
 });
 var query = wx.createSelectorQuery()
 //獲取頂部的距離
 query.select('#tab-con').boundingClientRect(function (res) {
 var top = res.top;
 if (top == null) {
 var top = 0;
 }
 that.setData({
 tabScrollTop: top
 })
 }).exec()
 //獲取板塊一離頂部的距離
 query.select('#block_1').boundingClientRect(function (res) {
 that.setData({
 block_1ScrollTop: res.top
 })
 }).exec()
 //獲取板塊二離頂部的距離
 query.select('#block_2').boundingClientRect(function (res) {
 that.setData({
 block2_ScrollTop: res.top
 })
 }).exec()
 //獲取板塊三離頂部的距離
 query.select('#block_3').boundingClientRect(function (res) {
 that.setData({
 block3_ScrollTop: res.top
 })
 }).exec()
 },
})

為大家推薦現(xiàn)在關(guān)注度比較高的微信小程序教程一篇:《微信小程序開發(fā)教程》小編為大家精心整理的,希望喜歡。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • javascript jq 彈出層實例

    javascript jq 彈出層實例

    javascript jq 彈出提示效果實現(xiàn)的方法有很多,可能會在某些地方看到過,下面為大家演示個示例介紹下如何實現(xiàn)jq 彈出層,感興趣的朋友可以參考下
    2013-08-08
  • FusionCharts圖表顯示雙Y軸雙(多)曲線

    FusionCharts圖表顯示雙Y軸雙(多)曲線

    項目中需要FusionCharts圖表顯示雙Y軸,好像FCF_MSLine.swf不可以這樣,只能顯示一個Y軸,多條線,找了一下,用MSCombiDY2D.swf可以實現(xiàn),現(xiàn)在曬出來和大家分享一下
    2012-11-11
  • 詳解JS異步加載的三種方式

    詳解JS異步加載的三種方式

    這篇文章主要介紹了詳解JS異步加載的三種方式,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-03-03
  • JavaScript實現(xiàn)隨機數(shù)生成器(去重)

    JavaScript實現(xiàn)隨機數(shù)生成器(去重)

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)隨機數(shù)生成器,生成不重復的隨機數(shù),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • JS中把函數(shù)作為另一函數(shù)的參數(shù)傳遞方法(總結(jié))

    JS中把函數(shù)作為另一函數(shù)的參數(shù)傳遞方法(總結(jié))

    下面小編就為大家?guī)硪黄狫S中把函數(shù)作為另一函數(shù)的參數(shù)傳遞方法(總結(jié))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • select下拉框插件jquery.editable-select詳解

    select下拉框插件jquery.editable-select詳解

    本篇文章主要介紹了select下拉框插件jquery.editable-select。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • javascript內(nèi)置對象Date案例總結(jié)分析

    javascript內(nèi)置對象Date案例總結(jié)分析

    今天總結(jié)javascript內(nèi)置對象Date的使用,并且寫一個重要的網(wǎng)頁倒計時的核心算法案例,有需要的朋友可以借鑒參考下希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • javascript 原型繼承介紹

    javascript 原型繼承介紹

    最近接觸了一下html5,當然,接觸過html5的人都知道,html5也不過是提供一些新的標簽而已,至于整下實現(xiàn)的核心,還是在javascript這里。
    2011-08-08
  • js的三種繼承方式詳解

    js的三種繼承方式詳解

    本文主要介紹了js的三種繼承方式。具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01
  • 仿谷歌主頁js動畫效果實現(xiàn)代碼

    仿谷歌主頁js動畫效果實現(xiàn)代碼

    昨天看到谷歌的主頁上出現(xiàn)了幾個動畫,發(fā)現(xiàn)不是flash做的,而是用js+圖片實現(xiàn)的!今天把拷貝到的圖片,用js實現(xiàn)了動畫效果!
    2013-07-07

最新評論

和硕县| 余姚市| 砚山县| 武邑县| 日照市| 南康市| 武川县| 遂平县| 依兰县| 岳普湖县| 桂东县| 新化县| 五台县| 沁源县| 罗城| 道孚县| 崇明县| 崇仁县| 河源市| 仁寿县| 乌海市| 台北市| 清原| 睢宁县| 宝坻区| 法库县| 长春市| 建平县| 聂拉木县| 河北省| 简阳市| 涟源市| 故城县| 镇远县| 安福县| 阿尔山市| 溧水县| 水富县| 商河县| 黎平县| 牡丹江市|