国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

封裝一個類似微信通訊錄帶有字母檢索功能的vue組件

這篇具有很好參考價值的文章主要介紹了封裝一個類似微信通訊錄帶有字母檢索功能的vue組件。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

這里我們直接使用scrollIntoView方法

該方法將調(diào)用它的元素滾動到瀏覽器窗口的可見區(qū)域

語法

element.scrollIntoView(); // 等同于element.scrollIntoView(true)

element.scrollIntoView(alignToTop); //布爾參數(shù)

element.scrollIntoView(scrollIntoViewOptions); //對象參數(shù)

組件

分析一下功能就知道很簡單了。

封裝一個類似微信通訊錄帶有字母檢索功能的vue組件,# Vue.js,微信,vue.js,前端

首先需要一個通訊錄列表,其次是字母列表。

字母列表很簡單。

第一種方法:直接用fromCharCode,for循環(huán)遍歷拿到26個英文字母。

// 獲取26個英文字母大寫
    for (var i = 0; i < 26; i++) {
      this.letter.push(String.fromCharCode(65 + i))
    }

但是這樣的做法,有一個壞處就是,如果通訊錄沒有這么多呢?

換句話說,如果通訊錄只有ABCDEFG這幾個首字母的聯(lián)系人,你把26個都弄上去有點不太合適。

第二種方法:也是相對簡單的,直接從通訊錄列表拿到字母。當然,這種方法需要后端給你對應的數(shù)據(jù)結(jié)構(gòu)。并且得讓他給你按首字母排序好,畢竟能少一事少一事。什么?他不干?打一頓他就聽話了。

當然,我給出的數(shù)據(jù)結(jié)構(gòu)你可以參考:

const peoArray = [
        {
          key: "A",
          list: [
            {
              name: "安吉",
            },
            {
              name: "安吉",
            },
          ],
        },
        {
          key: "B",
          list: [
            {
              name: "爸爸",
            },
            {
              name: "芭比",
            },
          ],
        },
        {
          key: "C",
          list: [
            {
              name: "蔡徐坤",
            },
            {
              name: "蔡徐坤",
            },
          ],
        },
 ]

直接上代碼

<template>
  <div id="letterPeo">
    <!-- 導航欄 -->
    <nav class="navBar" v-if="navBar" :style="{ height: navBarHeight }">頭部導航欄</nav>
    <!-- 字母檢索 -->
    <div class="letter">
      <div v-for="(item, index) in letter" :key="index" @click="scrollOn(item, index)">
        {{ item }}
      </div>
    </div>

    <!-- 通訊錄列表 -->
    <div class="peoBox">
      <div class="peo" ref="box">
        <div
          v-for="(item, index) in peoArray"
          :key="index"
          @click="onSelect(item, index)"
        >
          <p class="peoKey" :id="'peo' + item.key">{{ item.key }}</p>
          <p class="peolist" v-for="(ele, e) in item.list" :key="e">{{ ele.name }}</p>
        </div>
      </div>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      navBar: true, //是否開啟頭部導航
      navBarHeight: "50px", //導航欄高度
      letter: [], //字母檢索列表
      peoArray: [],//通訊錄列表
    };
  },
  computed: {},
  mounted() {
    // 獲取26個英文字母大寫
    // for (var i = 0; i < 26; i++) {
    //   this.letter.push(String.fromCharCode(65 + i))
    // }

    // 只獲取通訊錄字母
    this.peoArray.forEach((ele) => {
      this.letter.push(ele.key);
    });

    //因為有導航欄的原因,默認距離頂部一個導航欄的高度
    if (this.navBar) this.$refs.box.style.marginTop = this.navBarHeight;
  },
  methods: {
    // 字母檢索
    scrollOn(item) {
      if (this.navBar) this.$refs.box.style.marginTop = 0; // 開啟導航后,上邊距默認清零

      let target = document.getElementById("peo" + item); //獲取每個字母通訊錄對象
      if (target)
        target.scrollIntoView({
          behavior: "smooth", // 定義動畫過渡效果, "auto"或 "smooth" 之一。默認為 "auto"
        });

      if (this.navBar) this.$refs.box.style.marginTop = this.navBarHeight; //因為有導航欄的原因,所以上邊距應該為導航欄的高度
    },
    // 點擊通訊錄
    onSelect(item, index) {
      console.log(item, index);
    },
  },
};
</script>

<style scoped>
#letterPeo {
  width: 100%;
}
/* 導航欄 */
.navBar {
  width: 100%;
  position: fixed;
  text-align: center;
  line-height: 50px;
  background: #abf0ff;
  z-index: 3;
}
/* 字母 */
.letter {
  position: fixed;
  right: 10px;
  top: 15%;
  z-index: 2;
}
/* 通訊錄 */
.peoBox {
  position: relative;
}

.peo {
  width: 100%;
  overflow-y: scroll;
  position: absolute;
}
.peo p{
    padding: 0 10px;
}
.peo .peoKey {
  margin: 10px 0;
  font-size: 12px;
  background-color: #f3efef;
}
.peolist {
  margin: 20px 0;
}
</style>

完整數(shù)據(jù)文章來源地址http://www.zghlxwxcb.cn/news/detail-527630.html

[
        {
          key: "A",
          list: [
            {
              name: "安吉",
            },
            {
              name: "安吉",
            },
          ],
        },
        {
          key: "B",
          list: [
            {
              name: "爸爸",
            },
            {
              name: "芭比",
            },
          ],
        },
        {
          key: "C",
          list: [
            {
              name: "蔡徐坤",
            },
            {
              name: "蔡徐坤",
            },
          ],
        },
        {
          key: "D",
          list: [
            {
              name: "打飛機",
            },
          ],
        },
        {
          key: "E",
          list: [
            {
              name: "餓了么",
            },
          ],
        },
        {
          key: "F",
          list: [
            {
              name: "方慧",
            },
          ],
        },
        {
          key: "G",
          list: [
            {
              name: "哥哥",
            },
          ],
        },
        {
          key: "H",
          list: [
            {
              name: "黃老頭",
            },
          ],
        },
        {
          key: "I",
          list: [
            {
              name: "ikun",
            },
          ],
        },
        {
          key: "J",
          list: [
            {
              name: "接化發(fā)",
            },
          ],
        },
        {
          key: "K",
          list: [
            {
              name: "KFC",
            },
          ],
        },
        {
          key: "L",
          list: [
            {
              name: "劉老根",
            },
          ],
        },
        {
          key: "M",
          list: [
            {
              name: "沒讀書",
            },
          ],
        },
        {
          key: "N",
          list: [
            {
              name: "牛頭人",
            },
          ],
        },
        {
          key: "O",
          list: [
            {
              name: "O泡果奶",
            },
          ],
        },
        {
          key: "P",
          list: [
            {
              name: "嫖老頭",
            },
          ],
        },
        {
          key: "Q",
          list: [
            {
              name: "秦三兒",
            },
          ],
        },
        {
          key: "R",
          list: [
            {
              name: "日",
            },
          ],
        },
        {
          key: "S",
          list: [
            {
              name: "塞班",
            },
          ],
        },
        {
          key: "T",
          list: [
            {
              name: "糖糖",
            },
          ],
        },
        {
          key: "U",
          list: [
            {
              name: "U哈哈哈哈",
            },
          ],
        },
        {
          key: "V",
          list: [
            {
              name: "V ME 50",
            },
          ],
        },
        {
          key: "W",
          list: [
            {
              name: "王富貴",
            },
          ],
        },
        {
          key: "X",
          list: [
            {
              name: "喜羊羊",
            },
          ],
        },
        {
          key: "Y",
          list: [
            {
              name: "陽頂天",
            },
          ],
        },
        {
          key: "Z",
          list: [
            {
              name: "趙一曼",
            },
          ],
        },
      ],

到了這里,關于封裝一個類似微信通訊錄帶有字母檢索功能的vue組件的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【C語言】——動態(tài)內(nèi)存管理與文件操作,后面加一個通訊錄福利,萬字解讀,看完你會有一個全新認識

    【C語言】——動態(tài)內(nèi)存管理與文件操作,后面加一個通訊錄福利,萬字解讀,看完你會有一個全新認識

    目錄 一.動態(tài)內(nèi)存管理 1.為什么有動態(tài)內(nèi)存管理 2.malloc和free ?2.calloc和realloc 3.柔性數(shù)組 二.文件操作 1.為什么使用文件 ?2.二進制文件和文本文件 ?3.文件的打開和關閉 4.文件的順序讀寫 5.文件緩沖區(qū) 三.通訊錄 ?1.預處理 ?2.基本框架 3.初始化函數(shù) 4.增加聯(lián)系人 ?5.顯示聯(lián)系人

    2024年03月13日
    瀏覽(21)
  • 【創(chuàng)作贏紅包】循序漸進的全版本通訊錄詳解,可保存信息的動態(tài)通訊錄

    【創(chuàng)作贏紅包】循序漸進的全版本通訊錄詳解,可保存信息的動態(tài)通訊錄

    之前的博客里我們實現(xiàn)了 靜態(tài) 的通訊錄。|??ω?` ) 靜態(tài)通訊錄,適合初學者的手把手一條龍講解_陳大大陳的博客-CSDN博客 這個版本的通訊錄 無法實現(xiàn)容量的動態(tài)增加,也無法保存我們輸入的信息。(??へ??╬) 靜態(tài)通訊錄,是直接開辟100塊空間內(nèi)存來供使用,但是這樣

    2023年04月17日
    瀏覽(161)
  • 【C語言】動態(tài)內(nèi)存管理基礎知識——動態(tài)通訊錄,如何實現(xiàn)通訊錄容量的動態(tài)化

    【C語言】動態(tài)內(nèi)存管理基礎知識——動態(tài)通訊錄,如何實現(xiàn)通訊錄容量的動態(tài)化

    動態(tài)內(nèi)存管理的函數(shù)有:malloc,calloc,ralloc,free,本文講解動態(tài)內(nèi)存函數(shù)和使用,如何進行動態(tài)內(nèi)存管理,實現(xiàn)通訊錄聯(lián)系人容量的動態(tài)化,對常見動態(tài)內(nèi)存錯誤進行總結(jié)。 ???????? ? ? ? ? ? ? ? ? ??? 豬巴戒 :個人主頁? ??????????????? 所屬專欄 :《C語言進階》

    2024年02月04日
    瀏覽(44)
  • 通訊錄管理系統(tǒng)

    通訊錄管理系統(tǒng)

    作者:獅子也瘋狂 專欄:《項目集錦》 堅持做好每一步,幸運之神自然會駕凌在你的身上 該項目是用于日常生活中記錄聯(lián)系人信息的一款智能小工具。實現(xiàn)了對聯(lián)系人的姓名、年齡、性別、電話號碼、住址的添加及修改、查找、刪除、排序等功能。該項目是以 Windows 控制臺

    2024年02月05日
    瀏覽(98)
  • C語言—通訊錄

    C語言—通訊錄

    通訊錄中是存放人的信息的,人的信息包括:姓名、年齡、性別、電話、住址??梢园讶说男畔⒍x成結(jié)構(gòu)體,因為每個聯(lián)系人的信息都有這幾個要素。 注:用#define定義的標識符常量,使用修改時可以降低維護成本。如聯(lián)系人的信息中名字的寬度為20,以便之后需要修改時只

    2024年02月05日
    瀏覽(88)
  • 【通訊錄】--C語言

    【通訊錄】--C語言

    ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???? ?? ?? ?? 個人主頁 :阿然成長日記 ??點擊可跳轉(zhuǎn) ?? 個人專欄: ??數(shù)據(jù)結(jié)構(gòu)與算法??C語言進階 ?? 不能則學,不知則問,恥于問人,決無長進 ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? 用c語言實現(xiàn)一個通訊

    2024年02月15日
    瀏覽(99)
  • 【C語言】通訊錄

    【C語言】通訊錄

    目錄 一、關于通訊錄 二、代碼邏輯 三、通訊錄實現(xiàn) 1.菜單設計 2.邏輯主要功能設計 3.增加聯(lián)系人功能實現(xiàn) 4.顯示全部聯(lián)系人信息? ?5.刪除聯(lián)系人 6.查找聯(lián)系人 7.修改聯(lián)系人信息 8.對聯(lián)系人進行排序 ?9.一鍵清空所有聯(lián)系人 四、完整源碼 test.c contact.c contact.h 在通訊錄中,我

    2024年02月08日
    瀏覽(92)
  • C語言通訊錄

    C語言通訊錄

    ????????在本博客中,我們將介紹如何使用C語言構(gòu)建一個基本的通訊錄。主要涉及C語言的指針、結(jié)構(gòu)體、動態(tài)內(nèi)存管理、文件操作等方面的知識。我們還將學習如何使用C語言的各種功能和技巧來實現(xiàn)通訊錄的各種操作,如添加聯(lián)系人、編輯聯(lián)系人、刪除聯(lián)系人和搜索聯(lián)系

    2024年02月16日
    瀏覽(89)
  • C語言——通訊錄

    C語言——通訊錄

    相信大家都有過通訊錄,今天我來帶大家實現(xiàn)以下最簡單的通訊錄,通過本篇文章,相信可以讓大家對C語言有進一步的認識。 話不多說,我們先放函數(shù)的實現(xiàn) ?是不是看到這里會感到很害怕??不用怕,跟著我的思路,你也可以實現(xiàn)它,我?guī)е阋徊揭徊綄崿F(xiàn)每一個功能 ?

    2024年02月13日
    瀏覽(96)
  • C++ 通訊錄案例

    代碼如下:

    2024年02月13日
    瀏覽(96)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包