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

解決uniapp H5端 監(jiān)聽(tīng)鍵盤(pán)的彈出,收起 執(zhí)行其他操作

這篇具有很好參考價(jià)值的文章主要介紹了解決uniapp H5端 監(jiān)聽(tīng)鍵盤(pán)的彈出,收起 執(zhí)行其他操作。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

新建monitorKeyboard.js文件

         /**
 * @class 監(jiān)聽(tīng)虛擬鍵盤(pán)
 * @classdesc 監(jiān)聽(tīng)虛擬鍵盤(pán)彈出隱藏
 * @public onEnd 結(jié)束監(jiān)聽(tīng)虛擬鍵盤(pán)
 * @public onShow 傳遞一個(gè)回調(diào) 監(jiān)聽(tīng)虛擬鍵盤(pán)彈出
 * @public onHidden 傳遞一個(gè)回調(diào) 監(jiān)聽(tīng)虛擬鍵盤(pán)隱藏
 */
 class MonitorKeyboard {
    constructor() {
      this.type = this.IsIA();
      this.originalHeight = window.innerHeight;
    }
   
    /**
     *  @function IsIA 獲取設(shè)備類型
     *  @param  1 Android 2 iOS  
     */
    IsIA = () => {
      const userAgent = typeof window === 'object' ? window.navigator.userAgent : '';
      if (/android/i.test(userAgent)) {
        return 1; 
      } else if (/iPhone|iPod|iPad/i.test(userAgent)) {
        return 2; 
      }
    }
  
    // Android系統(tǒng)
    onResize = () => {
      //鍵盤(pán)彈起與隱藏都會(huì)引起窗口的高度發(fā)生變化
      const resizeHeight = window.innerHeight;
  
      if (this.originalHeight - resizeHeight > 50) {
        this.show('Android系統(tǒng): 軟鍵盤(pán)彈出');
      } else {
        this.hidden('Android系統(tǒng): 軟鍵盤(pán)收起');
      }
    }
  
    // iOS獲取焦點(diǎn)
    onFocusin = () => {
      this.show('iOS系統(tǒng):軟鍵盤(pán)彈出');
    }
   
    // iOS失去焦點(diǎn)
    onFocusout = () => {
      this.hidden('iOS系統(tǒng):軟鍵盤(pán)收起');
    }
  
    /**  
     * @function onStart 開(kāi)始監(jiān)聽(tīng)虛擬鍵盤(pán)  
     */
    onStart = () => {
      if (this.type == 1) {
        // 獲取窗口的高度
        window.addEventListener('resize', this.onResize);
      }
      if (this.type == 2) {
        // iOS系統(tǒng)
        window.addEventListener('focusin', this.onFocusin);
        window.addEventListener('focusout', this.onFocusout);
      }
    }
   
    /** 
     * @function onEnd 結(jié)束監(jiān)聽(tīng)虛擬鍵盤(pán)  
     */
    onEnd = () => {
      if (this.type == 1) {
        //獲取窗口的高度
        window.removeEventListener('resize', this.onResize);
      }
      if (this.type == 2) {
        window.removeEventListener('focusin', this.onFocusin);
        window.removeEventListener('focusout', this.onFocusout);
      }
    }
   
    /**
     * @function  onShow 傳遞一個(gè)回調(diào)函數(shù)
     * @param  虛擬鍵盤(pán)彈出時(shí)觸發(fā)
     */
    onShow = (fn) => {
      this.show = fn;
    }
     
    /**
      * @function  onHidden 傳遞一個(gè)回調(diào)函數(shù)
      * @param  虛擬鍵盤(pán)隱藏時(shí)觸發(fā)
      */
    onHidden = (fn) => {
      this.hidden = fn;
    }
  }
   
  export default MonitorKeyboard
  

在用到的vue頁(yè)面寫(xiě)

    import monitorKeyboard from '@/utils/monitorKeyboard.js'


mounted() {
	   this.getKeyboardState();
   },

methods: {
	  getKeyboardState(){
          this.monitorKeyboard = new monitorKeyboard();
          this.monitorKeyboard.onStart();

          // 監(jiān)聽(tīng)虛擬鍵盤(pán)彈出事件
          this.monitorKeyboard.onShow(() => {  
              console.log('鍵盤(pán)彈出')
          })

          //監(jiān)聽(tīng)鍵盤(pán)收起的事件
          this.monitorKeyboard.onHidden(() => {
            // console.log('鍵盤(pán)收起')
            // 執(zhí)行的其他操作
		    if(this.scenic){
		    this.showBut = false
		    }
          })
      }
   },
beforeDestroy(){
    this.monitorKeyboard.onEnd();
  },

文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-534547.html

到了這里,關(guān)于解決uniapp H5端 監(jiān)聽(tīng)鍵盤(pán)的彈出,收起 執(zhí)行其他操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • H5: div與textarea輸入框的交互(聚焦、失去焦點(diǎn)、鍵盤(pán)收起)

    H5: div與textarea輸入框的交互(聚焦、失去焦點(diǎn)、鍵盤(pán)收起)

    本文是基于 VUE3+TS 的代碼說(shuō)明。 記錄自己遇到的 div 與 textarea 輸入框交互的聚焦、失去焦點(diǎn)、鍵盤(pán)收起、表情插入不失去焦點(diǎn)的需求實(shí)現(xiàn)。 1.固定在頁(yè)面底部; 2.默認(rèn)顯示純文字與發(fā)送圖標(biāo)按鈕,文字超出的省略顯示; 3.點(diǎn)擊文字后,顯示文本輸入框、表情、半透明遮罩層,

    2024年02月12日
    瀏覽(54)
  • uniapp多行文本展開(kāi)或收起(兼容h5、微信小程序,其它未測(cè)試)

    uniapp多行文本展開(kāi)或收起(兼容h5、微信小程序,其它未測(cè)試)

    文本過(guò)短時(shí)隱藏按鈕,需要知道文本全部展示的行數(shù) 文本收起時(shí),微信小程序不能直接獲取文本展示的高度 文本展示時(shí),微信小程序不能直接獲取文本收起的高度 所以使用 占位文本 獲取單行文本高度,最終通過(guò)計(jì)算得到文本全部展示時(shí)的行數(shù) 本文介紹的方法兼容h5、微信

    2024年02月02日
    瀏覽(29)
  • UE4中對(duì)移動(dòng)端鍵盤(pán)彈出/監(jiān)聽(tīng)的處理

    背景:現(xiàn)有UE4的EditableText控件實(shí)現(xiàn)了輸入文本并發(fā)送的基本功能。但是,點(diǎn)擊輸入框才可以彈出系統(tǒng)鍵盤(pán),如果需要達(dá)到比如微信朋友圈的功能,比如自定義時(shí)機(jī)彈出,或?qū)︽I盤(pán)彈出時(shí)監(jiān)聽(tīng)等操作,則還需要一定的改造??梢园l(fā)散思路,對(duì)可任意編輯文本框的控件進(jìn)行改造,

    2024年02月10日
    瀏覽(14)
  • H5 防止安卓手機(jī)軟鍵盤(pán)彈出擠壓頁(yè)面導(dǎo)致變形的方法

    H5 防止安卓手機(jī)軟鍵盤(pán)彈出擠壓頁(yè)面導(dǎo)致變形的方法

    在做移動(dòng)端h5頁(yè)面時(shí),安卓端軟鍵盤(pán)會(huì)導(dǎo)致頁(yè)面壓縮變形的問(wèn)題:(安卓端有問(wèn)題,IOS端沒(méi)問(wèn)題) 安卓端:安卓中,如果將footer元素設(shè)置為position:fixed或absolute,因?yàn)檐涙I盤(pán)會(huì)改變頁(yè)面的高度(將頁(yè)面頂上來(lái)),因此footer元素也跟著移動(dòng)上來(lái),導(dǎo)致頁(yè)面變形; IOS端:蘋(píng)果的軟

    2024年02月13日
    瀏覽(19)
  • 聊天uniapp 微信小程序以及安卓app鍵盤(pán)彈出會(huì)把底部fixed定位的textarea輸入框覆蓋掉的解決方法

    采用此方法解決 將pages.json文件在指定的頁(yè)面中加入以下配置 “softinputMode”: “adjustResize” 具體代碼如下,將container的高度設(shè)置為100vh 注意: 雖然加了100vh后,但是聊天窗口底部還是會(huì)被遮擋,這怎么辦那?辦法就是:把內(nèi)框view設(shè)置成95vh,小于100vh就行。

    2024年02月05日
    瀏覽(86)
  • 【uniapp 監(jiān)聽(tīng)鍵盤(pán)彈起與收回】

    在uniapp中,可以通過(guò)使用小程序提供的API來(lái)監(jiān)聽(tīng)鍵盤(pán)彈起與收回。 首先,在頁(yè)面的onLoad函數(shù)中注冊(cè)監(jiān)聽(tīng)事件: 然后,在頁(yè)面的onUnload函數(shù)中取消注冊(cè)監(jiān)聽(tīng)事件: 接著,在頁(yè)面中定義onKeyboardHeightChange函數(shù),用于處理鍵盤(pán)彈起和收回事件: 通過(guò)上述代碼,就可以實(shí)現(xiàn)在uniapp中監(jiān)

    2024年02月11日
    瀏覽(17)
  • 【uniapp】 軟鍵盤(pán)彈出后fixed定位被頂上去問(wèn)題

    【uniapp】 軟鍵盤(pán)彈出后fixed定位被頂上去問(wèn)題

    當(dāng)手機(jī)設(shè)計(jì)的導(dǎo)航欄為fixed定位上去時(shí),輸入框獲取焦點(diǎn)就會(huì)把頂部自定義的導(dǎo)航欄頂?shù)缴厦嫒?,如下圖所示 輸入框設(shè)置 :adjust-position=“false” 當(dāng)輸入框獲取焦點(diǎn)時(shí)獲取到軟鍵盤(pán)的高度,方法為inputBindFocus 失去焦點(diǎn)時(shí)的 方法 然后把fiexTop給彈窗的最外層加上padding就好了 親測(cè)

    2024年02月13日
    瀏覽(69)
  • uniapp小程序點(diǎn)擊輸入框時(shí)阻止彈出軟鍵盤(pán)

    uniapp小程序點(diǎn)擊輸入框時(shí)阻止彈出軟鍵盤(pán)

    如果不需要監(jiān)聽(tīng)輸入框的話可以直接看解決方式3? 本人如此 解決方式1:@click更換成@tap 但如果同時(shí)子元素是開(kāi)關(guān)等? 各需要各的功能的話? 解決方式2: 使用微信官方api阻止鍵盤(pán)彈出??hideKeyboard() 解決方式3: 最簡(jiǎn)單暴力百分百不彈出的方法在此? 設(shè)置disabled

    2024年02月12日
    瀏覽(93)
  • uniapp監(jiān)聽(tīng)掃碼槍鍵盤(pán)事件|無(wú)輸入框式監(jiān)聽(tīng)

    一般的掃碼槍通過(guò)USB或藍(lán)牙連接手機(jī)或電腦,充當(dāng)?shù)氖且粋€(gè)外接設(shè)備。當(dāng)掃碼后,掃碼槍會(huì)自動(dòng)識(shí)別內(nèi)容,然后向連接的電腦或手機(jī)發(fā)送鍵盤(pán)事件keydown或keyup。 input輸入框式 如果頁(yè)面上有input輸入框就很簡(jiǎn)單,直接聚焦input,然后掃碼,input框會(huì)自動(dòng)填充內(nèi)容,并自動(dòng)產(chǎn)生回車(chē)

    2024年02月11日
    瀏覽(24)
  • uniapp app安卓 鍵盤(pán)監(jiān)聽(tīng)(無(wú)input)

    uniapp app安卓 鍵盤(pán)監(jiān)聽(tīng)(無(wú)input)

    如圖: 要實(shí)現(xiàn)點(diǎn)擊asdfhjkl任意鍵喚起答題說(shuō)明彈窗,彈窗喚起的情況下點(diǎn)擊enter鍵關(guān)閉彈窗,無(wú)彈窗的情況下點(diǎn)擊enter鍵直接開(kāi)始挑戰(zhàn) ? 事件說(shuō)明鏈接:HTML5+ API Reference

    2024年02月12日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包