1. 程式人生 > >小程式元件input:真機鍵盤彈窗遮蓋輸入框一部分樣式

小程式元件input:真機鍵盤彈窗遮蓋輸入框一部分樣式

問題:預設沒有點選input輸入框(評論框)的時候:

 

點選了input元件,鍵盤彈起時,自動上推頁面,預設鍵盤彈窗彈出到位置是input元件輸入聚焦位置(就是輸入框的游標一直閃爍的位置);所以就是沒有設定input元件和鍵盤的位置距離導致的覆蓋相關樣式現象。

解決方法:

1:可以設定cursor-spacing 的屬性距離

2:使用bindfocusbindblur 操作函式來動態設定底部元件框與底部之間的距離(外邊距):margin-bottom:30rpx;

  • js data裡面設定一個變數:inputMarBot: false, //評論框聚焦時,讓評論框距離底部的距離為30rpx
  • wxml 頁面:使用三元表示設定style input元件的父元素容器與底部外邊距:<view class='' style="{{inputMarBot?'margin-bottom:50rpx':''}}">(關鍵,主要跟input的聚焦和是去焦點有關)及input元件定義屬性:bindfocus='settingMbShow' bindblur='settingMbNoShow'
  • 方法:
 // 評論輸入框聚焦時,設定與底部的距離
  settingMbShow: function () {
    this.setData({
      inputMarBot: true
    })
  },
  //  評論輸入框失去聚焦時,設定與底部的距離(預設狀態)
  settingMbNoShow: function () {
    this.setData({
      inputMarBot: false
    })
  },

效果: