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

vue實現(xiàn)頂部左右滑動導航

 更新時間:2021年06月29日 10:39:10   作者:Geraint_z  
這篇文章主要為大家詳細介紹了vue實現(xiàn)頂部左右滑動導航,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

日常開發(fā)中經(jīng)常用到導航這些東西,寫篇文章記錄下。該導航實現(xiàn)為點擊末尾/起首位置,導航自動滑動出下一項的效果。

思路:判斷當前點擊項,相對與屏幕的位置,若點擊的位置,滿足可移動的限制,進行自動滑動處理。

實現(xiàn)如下:

vue

<template>
  <div class="debug-index-page">
    <div class="tab-layout" id="scroller">
      <ul v-for="(tab, idx) in tabList" :key="idx">
        <li
          :id="`tab-${tab.id}`"
          class="tab-item"
          @click="onClickTab(tab)"
          :style="`background:${tab.select ? 'red' : 'none'}`"
        >
          {{ tab.text }}
        </li>
      </ul>
    </div>
  </div>
</template>

JS

export default {

    data() {
        return {
            tabList: [],
        }
    },

    created() {
        let list = [
            "我的貴族",
            "貴族1",
            "我的貴族2",
            "貴族3",
            "貴族4",
            "貴族5",
            "我的貴族6",
            "我的貴族7",
        ];

        list.forEach((text, idx) => {
            this.tabList.push({
                text,
                id: idx, // tab標識
                select: idx == 0, // 是否被選擇
                index: idx // 處于顯示的位置
            });
        });
    },

    computed: {
        curTab() {
            return this.tabList.find(v => v.select);
        }
    },

    methods: {

        onClickTab(tabInfo) {
            let curTab = this.curTab;
            if (curTab.id == tabInfo.id) return;
            let { index, id } = tabInfo;
            // 滑動控件
            let scroller = document.getElementById("scroller");
            let speed = scroller.scrollWidth / this.tabList.length;
            let tab = document.getElementById(`tab-${id}`);
            let bWidth = document.body.clientWidth;
            // 點擊右邊
            if (curTab.index < index && tab.clientWidth * index >= bWidth - speed) {
            // 滑動的距離
                scroller.scrollLeft = (index + 2) * speed - bWidth;
            } else if (curTab.index > index && (tab.clientWidth * index - (scroller.scrollLeft + bWidth) < speed)) {
            // 滑動的距離
                scroller.scrollLeft = (index - 1) * speed;
            }

            curTab.select = false;
            this.tabList[index].select = true;
        }
    }
}

less

.debug-index-page {
    width: 100%;
    overflow:hidden;


  .tab-layout {
    width: 100%;
    overflow-x: scroll;
    display: flex;

    .tab-item {
      width: 1rem;
      text-align: center;
    }
  }
}

以上就是導航的顯示了。

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

相關文章

  • Vue通過moment插件實現(xiàn)獲取當前月的第一天和最后一天

    Vue通過moment插件實現(xiàn)獲取當前月的第一天和最后一天

    這篇文章主要介紹了Vue 結(jié)合插件moment 實現(xiàn)獲取當前月的第一天和最后一天,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-10-10
  • vue 指令之氣泡提示效果的實現(xiàn)代碼

    vue 指令之氣泡提示效果的實現(xiàn)代碼

    這篇文章主要介紹了vue 指令之氣泡提示效果的實現(xiàn)代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-10-10
  • 使vue實現(xiàn)jQuery調(diào)用的兩種方法

    使vue實現(xiàn)jQuery調(diào)用的兩種方法

    這篇文章主要介紹了使vue實現(xiàn)jQuery調(diào)用的兩種方法 ,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • vue動態(tài)循環(huán)出的多個select出現(xiàn)過的變?yōu)閐isabled(實例代碼)

    vue動態(tài)循環(huán)出的多個select出現(xiàn)過的變?yōu)閐isabled(實例代碼)

    本文通過實例代碼給大家分享了vue動態(tài)循環(huán)出的多個select出現(xiàn)過的變?yōu)閐isabled效果,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-11-11
  • Vue3中樣式滲透:deep()無效的原因分析

    Vue3中樣式滲透:deep()無效的原因分析

    今天學習 /deep/ 樣式穿透,因為vue3中已經(jīng)使用:deep()取代了/deep/ ,所以直接用:deep()練習,這篇文章主要介紹了Vue3中樣式滲透:deep()為什么無效,需要的朋友可以參考下
    2022-11-11
  • Vue組件化開發(fā)之通用型彈出框的實現(xiàn)

    Vue組件化開發(fā)之通用型彈出框的實現(xiàn)

    這篇文章主要介紹了Vue組件化開發(fā)之通用型彈出框的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • vuex項目中登錄狀態(tài)管理的實踐過程

    vuex項目中登錄狀態(tài)管理的實踐過程

    由于狀態(tài)零散地分布在許多組件和組件之間的交互中,大型應用復雜度也經(jīng)常逐漸增長,為了解決這個問題,Vue 提供 vuex,這篇文章主要給大家介紹了關于vuex項目中登錄狀態(tài)管理的相關資料,需要的朋友可以參考下
    2021-09-09
  • Vue3新狀態(tài)管理工具實例詳解

    Vue3新狀態(tài)管理工具實例詳解

    Vue3公布曾經(jīng)有一段時間了,它采納了新的響應式零碎,而且構(gòu)建了一套全新的 Composition API,下面這篇文章主要給大家介紹了關于Vue3新狀態(tài)管理工具的相關資料,需要的朋友可以參考下
    2022-03-03
  • vue文本識別"\n"換行問題的解決方式

    vue文本識別"\n"換行問題的解決方式

    在頁面中經(jīng)常會遇到自定義文本,如果文本過長就需要換行,在HTML中可以通過標簽換行,也可以通過\n轉(zhuǎn)椅字符換行,下面這篇文章主要給大家介紹了關于vue文本識別“\n”換行問題的解決方式,需要的朋友可以參考下
    2022-11-11
  • vue組件傳遞對象中實現(xiàn)單向綁定的示例

    vue組件傳遞對象中實現(xiàn)單向綁定的示例

    下面小編就為大家分享一篇vue組件傳遞對象中實現(xiàn)單向綁定的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02

最新評論

大姚县| 海阳市| 舒城县| 岑溪市| 故城县| 九龙坡区| 洪雅县| 荆门市| 同江市| 奎屯市| 盐亭县| 太和县| 汉阴县| 章丘市| 浏阳市| 调兵山市| 华坪县| 武邑县| 太仆寺旗| 绥宁县| 瑞丽市| 花莲县| 阿荣旗| 廊坊市| 调兵山市| 东乌珠穆沁旗| 罗定市| 铜鼓县| 广平县| 崇文区| 柳林县| 渝中区| 且末县| 济源市| 公主岭市| 遂昌县| 彭阳县| 仙桃市| 石景山区| 景泰县| 梨树县|