欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript實現(xiàn)一個輸入框組件

 更新時間:2021年09月12日 10:11:53   作者:Aaron_1127  
這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)一個輸入框組件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了手動實現(xiàn)一個輸入框組件的具體代碼,供大家參考,具體內(nèi)容如下

背景

taro h5中想要實現(xiàn)一個樣式如下的輸入框:

問題:

taro組件和taro-ui組件中都沒有這種樣式的組件,taro h5 中還不支持修改placeholder的樣式,自己嘗試著實現(xiàn)一個input組件,更能靈活的定義其中的樣式。

實現(xiàn)

js代碼

import Taro, { Component } from '@tarojs/taro';
import { View } from '@tarojs/components';
import { AtIcon } from 'taro-ui';

import './index.scss';

/**
 * @description 手動實現(xiàn)一個輸入框組件
 * @param placeholder:String 自定義輸入框中的占位符
 * @param onClickSearch:Function 獲取輸入內(nèi)容回調(diào)
 */
class BaseInput extends Component {
  componentDidMount() {
    //輸入框聚焦
    document.querySelector('.search').focus();
  }

  handleSearch = () => {
    //獲取輸入框的內(nèi)容
    const value = document.querySelector('.search').innerText;
    this.props.onClickSearch && this.props.onClickSearch(value);
  };

  render() {
    const { placeholder = '請輸入' } = this.props;
    return (
      <View className="base_input">
        <View className="my_search">
          <AtIcon
            value="search"
            color="#999"
            className="search_icon"
            onClick={this.handleSearch}
          />
          {/* contenteditable可以控制一個div是否可以編輯 */}
          <View
            className="search"
            contenteditable
            placeholder={placeholder}
          ></View>
        </View>
      </View>
    );
  }
}
export default BaseInput;

scss代碼

.base_input {
  .my_search {
    box-sizing: border-box;
    width: 690px;
    height: 56px;
    line-height: 56px;
    border-radius: 28px;
    margin: 12px auto;
    background: #f8f8f8;
    display: flex;
    .search_icon {
      width: 30px;
      height: 30px;
      margin-left: 20px;
      margin-right: 18px;
    }
    .search {
      width: 560px;
      padding: 0px 18px;
      background: #f8f8f8;
      height: 56px;
      color: #999;
      font-size: 28px;
      font-weight: 400;
      &:empty::after {
        content: attr(placeholder);
      }
    }
  }
}

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

相關(guān)文章

  • JS基于ES6新特性async await進行異步處理操作示例

    JS基于ES6新特性async await進行異步處理操作示例

    這篇文章主要介紹了JS基于ES6新特性async await進行異步處理操作,結(jié)合實例形式分析了async await進行異步處理操作的相關(guān)原理、步驟與注意事項,需要的朋友可以參考下
    2019-02-02
  • 全國省市二級聯(lián)動下拉菜單 js版

    全國省市二級聯(lián)動下拉菜單 js版

    這篇文章主要為大家詳細介紹了基于javascript實現(xiàn)全國省市二級聯(lián)動下拉菜單,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • js word表格動態(tài)添加代碼

    js word表格動態(tài)添加代碼

    最近聽說了一個名詞word宏編程。自己也學(xué)習(xí)了一下js動態(tài)添加word表格
    2010-06-06
  • 一個簡單的js漸顯(fadeIn)漸隱(fadeOut)類

    一個簡單的js漸顯(fadeIn)漸隱(fadeOut)類

    最近發(fā)現(xiàn)項目用的表單驗證不好使,干脆一邊參考人家的一邊自己寫了一個。在驗證有錯誤返回提示信息用到漸顯(fadeIn)漸隱(fadeOut)過渡(因為瀏覽器的效率實在太高了,一下就蹦了出來~~);
    2010-06-06
  • js對象數(shù)組根據(jù)對象屬性刪除對象

    js對象數(shù)組根據(jù)對象屬性刪除對象

    這篇文章主要介紹了js對象數(shù)組根據(jù)對象屬性刪除對象,需要的朋友可以參考下
    2023-07-07
  • 再談Javascript中的異步以及如何異步

    再談Javascript中的異步以及如何異步

    大家都知道js是單線程的,執(zhí)行起來是順序的,在順序的業(yè)務(wù)邏輯中當(dāng)然沒有問題,如果遇到可以并發(fā)執(zhí)行的業(yè)務(wù)邏輯,再排隊就很低級了!所以這里我們再來簡單的談?wù)凧S中的異步以及如何異步。
    2016-08-08
  • JavaScript修改注冊表實例代碼

    JavaScript修改注冊表實例代碼

    這篇文章主要介紹了JavaScript修改注冊表實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-01-01
  • d3.js實現(xiàn)立體柱圖的方法詳解

    d3.js實現(xiàn)立體柱圖的方法詳解

    這篇文章主要給大家介紹了利用d3.js實現(xiàn)立體柱圖的方法,文中給出了詳細的介紹和示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-04-04
  • 前端快速獲取cookie的2種簡單方式

    前端快速獲取cookie的2種簡單方式

    這篇文章主要給大家介紹了關(guān)于前端快速獲取cookie的2種簡單方式,Cookie是在HTTP協(xié)議下,服務(wù)器或腳本可以維護客戶工作站上信息的一種方式,需要的朋友可以參考下
    2023-08-08
  • uni-app如何實現(xiàn)增量更新功能

    uni-app如何實現(xiàn)增量更新功能

    這篇文章主要介紹了uni-app如何實現(xiàn)增量更新功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01

最新評論