在使用vant框架的密碼輸入框時(shí),眼睛圖標(biāo)為什么會(huì)消失?如何解決?

在使用vant框架的密碼輸入框時(shí),眼睛圖標(biāo)為什么會(huì)消失?如何解決?

vue3 vant密碼輸入框自定義顯示/隱藏密碼圖標(biāo)

在使用vue3和Vant框架開發(fā)時(shí),您可能會(huì)遇到Vant密碼輸入框自帶密碼顯示/隱藏功能缺失或顯示異常的問(wèn)題。 這通常是因?yàn)?a >瀏覽器默認(rèn)的密碼輸入框樣式與Vant組件樣式?jīng)_突導(dǎo)致的。 解決方法是自定義密碼顯示/隱藏功能,并隱藏瀏覽器默認(rèn)的圖標(biāo)。

問(wèn)題描述:Vant密碼輸入框在第一次聚焦時(shí)顯示密碼顯示/隱藏圖標(biāo)(瀏覽器默認(rèn)圖標(biāo)),但失去焦點(diǎn)后再聚焦,圖標(biāo)消失。

解決方法:使用css隱藏瀏覽器默認(rèn)圖標(biāo),并使用Vant提供的v-model和自定義邏輯控制密碼的顯示/隱藏。

CSS代碼 (隱藏瀏覽器默認(rèn)圖標(biāo)):

input[type="password"]::-webkit-toggle-password { /*chrome*/   -webkit-appearance: none!important;   display: none!important; } input[type="password"]::-moz-ui-password { /*firefox*/   -moz-appearance: none!important;   display: none!important; } input[type="password"]::-ms-reveal { /*edge*/   display: none!important; }

Vue組件代碼 (示例,需根據(jù)實(shí)際情況調(diào)整):

<template>   <div>     <input       type="password"       v-model="password"       :type="showPassword ? 'text' : 'password'"     />     <van-icon       name="eye"       @click="showPassword = !showPassword"     />   </div> </template>  <script> import { ref } from 'vue'; import { Icon } from 'vant';  export default {   components: {     [Icon.name]: Icon,   },   setup() {     const password = ref('');     const showPassword = ref(false);     return { password, showPassword };   }, }; </script>

此代碼利用Vant的van-icon組件創(chuàng)建一個(gè)自定義的密碼顯示/隱藏圖標(biāo),并通過(guò)v-model和showPassword變量動(dòng)態(tài)控制輸入框的type屬性,實(shí)現(xiàn)密碼的顯示和隱藏。 記住將上述CSS代碼添加到您的項(xiàng)目樣式表中。 此方案避免了與瀏覽器默認(rèn)樣式的沖突,并提供更一致的用戶體驗(yàn)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享