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

Vue Components 數(shù)字鍵盤的實(shí)現(xiàn)

 更新時(shí)間:2019年09月18日 11:34:04   作者:juststart_LIC  
這篇文章主要介紹了Vue Components 數(shù)字鍵盤的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

本文介紹了Vue Components 數(shù)字鍵盤的實(shí)現(xiàn),分享給大家,具體如下:

項(xiàng)目地址 點(diǎn)擊查看 

項(xiàng)目演示 點(diǎn)擊查看

首先監(jiān)聽所有的input,有input聚焦時(shí)調(diào)起數(shù)字鍵盤,通過(guò)getBoundingClientRect判斷input位置讓數(shù)字鍵盤在input附近,失去焦點(diǎn)后則隱藏?cái)?shù)字鍵盤

let inputElement = document.getElementsByTagName("input");
  [...inputElement].forEach(ipele => {
   ipele.addEventListener("focus", function(e) {
    $this.inputTarget = e.target;
    let scrollTop =
     window.pageYOffset ||
     document.documentElement.scrollTop ||
     document.body.scrollTop;
    let scrollLeft =
     window.pageXOffset ||
     document.documentElement.scrollLeft ||
     document.body.scrollLeft;
    $this.NumberkeyBoardStyle =
     "top:" +
     (e.target.getBoundingClientRect().top +
      scrollTop +
      e.target.offsetHeight) +
     "px;left:" +
     (e.target.getBoundingClientRect().left +
      scrollLeft +
      e.target.offsetWidth) +
     "px";
   });
   ipele.addEventListener("blur", function(e) {
    $this.inputTarget = null;
    $this.NumberkeyBoardStyle = "display:none";
   });
  });

點(diǎn)擊小鍵盤時(shí)阻止默認(rèn)事件,阻止input失去焦點(diǎn)。

BoardNumberKeyDown(e) {
   if (e && e.preventDefault) {
    e.preventDefault();
   } else {
    window.event.returnValue = false;
    return false;
   }
  },

點(diǎn)擊小鍵盤時(shí),根據(jù)事件委托,得出點(diǎn)擊的數(shù)字,然后根據(jù)selectionStart,selectionEnd獲取input中的焦點(diǎn),將小鍵盤中的數(shù)字插入焦點(diǎn)處,最后焦點(diǎn)右移一位。

let inputTarget = this.inputTarget;
let Pointstart = inputTarget.selectionStart;
let PointEnd = inputTarget.selectionEnd;
let wordLength = inputTarget.value.length;
if (e.target.className == "numberTD" && e.target.innerText != "←") {
inputTarget.value =
 inputTarget.value.slice(0, Pointstart) +
 e.target.innerText +
 inputTarget.value.slice(PointEnd, wordLength);
//一個(gè)小數(shù)點(diǎn)和開頭不能有小數(shù)點(diǎn)
inputTarget.value = inputTarget.value.replace(/^\./g, "");
inputTarget.value = inputTarget.value
 .replace(".", "$#$")
 .replace(/\./g, "")
 .replace("$#$", ".");
inputTarget.selectionStart = Pointstart + 1;
inputTarget.selectionEnd = Pointstart + 1;
//讓光標(biāo)顯示在input可視區(qū)域
inputTarget.blur();
inputTarget.focus();

點(diǎn)擊刪除鍵時(shí),刪除光標(biāo)處數(shù)字,最后光標(biāo)右移。

if (e.target.className == "numberTD" &&
  e.target.innerText == "←" &&
  //PointEnd==0時(shí)會(huì)復(fù)制整個(gè)input的value
  PointEnd != 0
  ) {
    inputTarget.value =
     inputTarget.value.slice(0, Pointstart - 1) +
     inputTarget.value.slice(PointEnd, wordLength);
    inputTarget.selectionStart = Pointstart - 1;
    inputTarget.selectionEnd = Pointstart - 1;
    //讓光標(biāo)顯示在input可視區(qū)域
    inputTarget.blur();
    inputTarget.focus();
   } 

在刪除數(shù)字和添加數(shù)字后要讓input失去焦點(diǎn)在獲取焦點(diǎn),不然光標(biāo)會(huì)在最后而不是在input的可視區(qū)域,這樣子會(huì)看不到輸入的值,具體可以查看項(xiàng)目。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Ant?Design_Form表單上傳文件組件實(shí)現(xiàn)詳解

    Ant?Design_Form表單上傳文件組件實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Ant?Design_Form表單上傳文件組件實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 從0搭建Vue3組件庫(kù)如何使用?glup?打包組件庫(kù)并實(shí)現(xiàn)按需加載

    從0搭建Vue3組件庫(kù)如何使用?glup?打包組件庫(kù)并實(shí)現(xiàn)按需加載

    這篇文章主要介紹了從0搭建Vue3組件庫(kù)如何使用?glup?打包組件庫(kù)并實(shí)現(xiàn)按需加載,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 解決vue項(xiàng)目Error:Cannot find module‘xxx’類報(bào)錯(cuò)問(wèn)題

    解決vue項(xiàng)目Error:Cannot find module‘xxx’類報(bào)錯(cuò)問(wèn)題

    當(dāng)npm運(yùn)行報(bào)錯(cuò)Error:Cannot find module 'xxx'時(shí),通常是因?yàn)閚ode_modules文件或依賴未正確安裝,解決步驟包括刪除node_modules和package-lock.json文件,重新運(yùn)行npm install,并根據(jù)需要安裝額外插件,若網(wǎng)絡(luò)問(wèn)題導(dǎo)致安裝失敗
    2024-10-10
  • vue中methods、mounted等的使用方法解析

    vue中methods、mounted等的使用方法解析

    這篇文章主要介紹了vue中methods、mounted等的使用方法解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • vue-cli 自定義指令directive 添加驗(yàn)證滑塊示例

    vue-cli 自定義指令directive 添加驗(yàn)證滑塊示例

    本篇文章主要介紹了vue-cli 自定義指令directive 添加驗(yàn)證滑塊示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • vue3自定義組件之v-model實(shí)現(xiàn)父子組件雙向綁定

    vue3自定義組件之v-model實(shí)現(xiàn)父子組件雙向綁定

    這篇文章主要介紹了vue3自定義組件之v-model實(shí)現(xiàn)父子組件雙向綁定方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 解決vue組件沒顯示,沒起作用,沒報(bào)錯(cuò),但該顯示的組件沒顯示問(wèn)題

    解決vue組件沒顯示,沒起作用,沒報(bào)錯(cuò),但該顯示的組件沒顯示問(wèn)題

    這篇文章主要介紹了解決vue組件沒顯示,沒起作用,沒報(bào)錯(cuò),但該顯示的組件沒顯示問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • 詳解elementui之el-image-viewer(圖片查看器)

    詳解elementui之el-image-viewer(圖片查看器)

    這篇文章主要介紹了詳解elementui之el-image-viewer(圖片查看器),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Vue自動(dòng)構(gòu)建發(fā)布腳本的方法示例

    Vue自動(dòng)構(gòu)建發(fā)布腳本的方法示例

    這篇文章主要介紹了Vue自動(dòng)構(gòu)建發(fā)布腳本的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • vue中watch和computed的區(qū)別與使用方法

    vue中watch和computed的區(qū)別與使用方法

    這篇文章主要給大家介紹了關(guān)于vue中watch和computed的區(qū)別與使用方法的相關(guān)資料,文中通過(guò)實(shí)例代碼結(jié)束的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08

最新評(píng)論

阿拉尔市| 曲沃县| 冀州市| 宁城县| 禹州市| 秀山| 邵武市| 宝兴县| 新邵县| 志丹县| 内乡县| 饶阳县| 星座| 高淳县| 莱芜市| 文昌市| 靖边县| 全州县| 开封市| 宜君县| 昆明市| 西昌市| 如东县| 田阳县| 诏安县| 高邑县| 道孚县| 塔河县| 青田县| 临夏市| 边坝县| 灌阳县| 平顺县| 岚皋县| 阿鲁科尔沁旗| 女性| 临猗县| 石城县| 长兴县| 德庆县| 九江市|