vue實現左右兩列豎直分別滑動,且雙向關聯的選項卡(二)


查了諸如vant,mint組件上並沒有找到期望的這種效果(cube組件上有,但項目中實在不想再引入一個第三方的組件庫了),但實際上在移動端app開發中很常見的一個效果。於是按照自己的思路將這個效果做了出來,

效果是:

1.左右兩欄可以分別獨立滑動,(首先要完成這個基礎樣式效果)

2.點擊左邊選項卡,右邊內容滑動到相應內容,

3.而且滑動右邊內容時,左邊的選項卡也跟着聚焦到對應位置

 代碼:

export default{
  
name: "",
    components:{
        // Tabbar2
    },
    data(){
      return{
          list:['熱門','中超','英超','西甲','意甲','國家隊','中甲','南斯拉夫','荷甲','葡甲','法甲','蘇超','俄超','土超','美職聯','日至賽','K聯賽'],
          curLeft:0
      },
     
methods:{
        leftSelect(index){                                                            //左邊點擊控制右邊(給左邊循環出來的按鈕綁定點擊事件)
            this.curLeft = index
            let num                                                                      //設置scroll的位置
            let right = document.getElementById('right')
            if(index==0) num = 605*index-60                             // 605是右邊每一部分的高度,60是將整個屏幕高度遮起來header的高度,這一部分當然不計入滑動的距離啦,
            else num = 605*index
            $("#right").animate({ scrollTop: num }, 400);     
        }
    },
   mounted:function(){                                                             //右邊滑動控制左邊
        var right = document.getElementById("right")               //給滑動的部分添加監聽事件
        right.addEventListener('scroll', () => {                         
            let hopeIndex = Math.ceil((right.scrollTop-60)/605)
            this.curLeft = hopeIndex                                            將監聽得到的數值計算出來當前屏幕窗口的內容應該屬於哪個index,並賦值給左邊的index
        }, true);
     }
    },
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM