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

微信小程序?qū)崿F(xiàn)分類菜單激活狀態(tài)隨列表滾動而自動切換效果詳解

 更新時間:2023年01月18日 16:38:57   作者:fanction  
這篇文章主要介紹了微信小程序分類菜單激活狀態(tài)跟隨列表滾動自動切換,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧

這里主要用到微信小程序提供的SelectorQuery獲取頁面節(jié)點信息實現(xiàn),組件用的是微信小程序的scroll-view

邏輯就是獲取右側(cè)盒子的節(jié)點信息,獲取右側(cè)子分類的節(jié)點信息,當(dāng)子分類滑動到頂部的之后,則切換左側(cè)分類狀態(tài),而且當(dāng)右側(cè)子分類的位置處于觸頂以及包含頂部位置的狀態(tài)下,同樣激活左側(cè)分類狀態(tài)。

view結(jié)構(gòu)

左側(cè)父級分類

   <scroll-view 
   class="left"
   scroll-y
   >
     <view 
     class="{{item.id == active ? 'left_current left_box' : 'left_box'}}" 
     wx:for="{{leftData}}" 
     wx:key="index"
     bindtap="leftClick"
     data-id="{{item.id}}"
     >{{item.catName}}</view>
   </scroll-view>

右側(cè)子分類

   <scroll-view 
   class="right"
   scroll-y
   scroll-into-view="{{'chunk'+ activeClassifyId}}"
   scroll-with-animation
   bindscroll="scroll"
   >
     <view 
     class="right_box" 
     wx:for="{{rightData}}" 
     wx:key="index"
     id="{{'chunk'+ item.id}}"
     >
        <view class="right_title">{{item.name}}</view>
        <view class="right_innerBox" wx:for-item="item2" wx:for="{{item.list}}" wx:key="index2" >
        <view>{{item2.name}}</view>
        </view>
     </view>
   </scroll-view>

css的部分大家自己按照需求寫即可。

js部分

data:{
   // ...數(shù)據(jù)...
   active:'', // 左側(cè)分類激活
   activeClassifyId :''  // 滾動定位的id
}
  // 左側(cè)分類點擊
  leftClick(e){
    // 當(dāng)前分類id
    let { id } = e.currentTarget.dataset
    this.setData({
      active:id,  // 左側(cè)激活的id
      activeClassifyId : id   // 分類定位的id
    })
    // activeClassifyId分類定位的id不應(yīng)該和左側(cè)激活的id是同一個,否則左側(cè)激活會在下面的滾動事件內(nèi)持續(xù)觸發(fā),導(dǎo)致無法滾動。
  },
  // 右側(cè)滾動觸發(fā)
  scroll(){
    let { rightData } = this.data
    rightData.map(item=>{
      if(item.list.length>0){
    // 返回一個 SelectorQuery 對象實例。獲取頁面的節(jié)點信息。
     const query = wx.createSelectorQuery()
      query.select('#chunk'+item.id)  // 獲取id為chunkID的元素
      .boundingClientRect(ref=>{  // 獲取節(jié)點寬高信息和位置信息
        // 如果當(dāng)前的子分類滾動到了頂部以及當(dāng)前子分類正處于頂部的位置
        if(0>ref.top&&ref.top>(ref.height*-1)){
          this.setData({active :item.id})   // 切換左側(cè)父分類的高亮
        }
      }).exec()
      }
    })
  },

屬性解釋

scroll-with-animation:在設(shè)置滾動條位置時使用動畫過渡

scroll-into-view:值應(yīng)為某子元素id(id不能以數(shù)字開頭)。設(shè)置哪個方向可滾動,則在哪個方向滾動到該元素

bindscroll:滾動時觸發(fā)的事件event.detail = {scrollLeft, scrollTop, scrollHeight, scrollWidth, deltaX, deltaY}

createSelectorQuery:返回一個 SelectorQuery 對象實例。獲取頁面的節(jié)點信息。

select:獲取id的元素

boundingClientRect:獲取節(jié)點寬高信息和位置信息

說明

此處用到的是scroll-into-view根據(jù)子分類的id動態(tài)定位到右側(cè)子分類位置,右側(cè)子分類在滾動的時候,會判斷條件,如果當(dāng)前子分類展示的這一欄觸頂或者處于正在展示的位置(包含頂部),更新父級分類。

注意

左側(cè)分類的高亮active不能和滾動定位的activeClassifyId共用,否則右側(cè)滾動的時候會持續(xù)更新active導(dǎo)致右側(cè)無法滾動,activeClassifyId只需要在左側(cè)父級分類點擊的時候更新即可。

到此這篇關(guān)于微信小程序?qū)崿F(xiàn)分類菜單激活狀態(tài)隨列表滾動而自動切換效果詳解的文章就介紹到這了,更多相關(guān)小程序菜單激活狀態(tài)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • var與Javascript變量隱式聲明

    var與Javascript變量隱式聲明

    在JavaScript中,var用來聲明變量,但是這個語法并不嚴格要求,很多時修改,我們可以直接使用一個變量而不用var聲明它。
    2009-09-09
  • javascript游戲開發(fā)之《三國志曹操傳》零部件開發(fā)(一)讓靜態(tài)人物動起來

    javascript游戲開發(fā)之《三國志曹操傳》零部件開發(fā)(一)讓靜態(tài)人物動起來

    首先來說,讓一個游戲賦有可玩性必須要動靜結(jié)合,我將要在下面告訴大家如何運用Javascript將靜態(tài)圖片變?yōu)閯討B(tài)圖片,感興趣的朋友可以了解下,便當(dāng)鞏固js知識了
    2013-01-01
  • NProgress顯示頂部進度條效果及使用詳解

    NProgress顯示頂部進度條效果及使用詳解

    這篇文章主要為大家詳細介紹了NProgress顯示頂部進度條效果及使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • JS實現(xiàn)同一DOM元素上onClick事件與onDblClick事件并存的解決方法

    JS實現(xiàn)同一DOM元素上onClick事件與onDblClick事件并存的解決方法

    這篇文章主要介紹了JS實現(xiàn)同一DOM元素上onClick事件與onDblClick事件并存的解決方法,結(jié)合實例形式分析了javascript通過針對單擊onclick事件增加定時器進行onClick事件與onDblClick事件的區(qū)別判定操作,需要的朋友可以參考下
    2018-06-06
  • JavaScript中while循環(huán)的基礎(chǔ)使用教程

    JavaScript中while循環(huán)的基礎(chǔ)使用教程

    這篇文章主要給大家介紹了關(guān)于JavaScript中while循環(huán)的基礎(chǔ)使用教程,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用JavaScript具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • JS中的forEach、$.each、map方法推薦

    JS中的forEach、$.each、map方法推薦

    下面小編就為大家?guī)硪黄狫S中的forEach、$.each、map方法推薦。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-04-04
  • 理解Javascript_13_執(zhí)行模型詳解

    理解Javascript_13_執(zhí)行模型詳解

    在《理解Javascript_12_執(zhí)行模型淺析》一文中,我們初步的了解了執(zhí)行上下文與作用域的概念,那么這一篇將深入分析執(zhí)行上下文的構(gòu)建過程,了解執(zhí)行上下文、函數(shù)對象、作用域三者之間的關(guān)系。
    2010-10-10
  • javascript中html字符串轉(zhuǎn)化為jquery dom對象的方法

    javascript中html字符串轉(zhuǎn)化為jquery dom對象的方法

    最近項目需求要開發(fā)百度地圖相關(guān)的一個應(yīng)用,需要從硬編碼的html字符串中提取自己想要的元素以及屬性信息,由于在js中或者jq中操作元素節(jié)點以及屬性都是使用dom對象或者jq對象。下面介紹javascript中html字符串轉(zhuǎn)化為jquery dom對象的方法,需要的朋友可以參考下
    2015-08-08
  • JavaScript計算字符串中特定字符出現(xiàn)次數(shù)的實例詳解

    JavaScript計算字符串中特定字符出現(xiàn)次數(shù)的實例詳解

    在JavaScript編程中,經(jīng)常會遇到需要計算字符串中特定字符出現(xiàn)次數(shù)的情況,在本文中,我將分享兩個簡單的JavaScript函數(shù),用于計算字符串中特定字符出現(xiàn)的次數(shù),需要的朋友可以參考下
    2023-11-11
  • 詳解設(shè)置Webstorm 利用babel將ES6自動轉(zhuǎn)碼成ES5

    詳解設(shè)置Webstorm 利用babel將ES6自動轉(zhuǎn)碼成ES5

    這篇文章主要介紹了詳解設(shè)置Webstorm 利用babel將ES6自動轉(zhuǎn)碼成ES5,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論

临桂县| 开鲁县| 武义县| 永新县| 甘泉县| 云南省| 武胜县| 衡水市| 东丰县| 江口县| 尼勒克县| 安远县| 且末县| 大荔县| 佳木斯市| 肇庆市| 乌鲁木齐县| 宁陕县| 买车| 西和县| 武胜县| 陕西省| 治县。| 大城县| 临海市| 荥阳市| 嘉峪关市| 屏山县| 历史| 施甸县| 双江| 绥阳县| 大埔区| 汽车| 临潭县| 万盛区| 庆安县| 肥东县| 福州市| 阳信县| 洞头县|