weex引入iconfont之input的placeholder显示icon

本文探讨了在Weex框架下,如何在输入框的占位符中显示图标。提供了两种方案,一种是在placeholder直接使用iconfont代码,另一种是通过绝对定位实现。详细介绍了每种方法的实现步骤及在iOS和Android平台上的表现。

这是本次开发的设计图,不难看出是在input的placeholder里显示icon。

反正我是第一次遇到,以往搜索框的icon不是放前,就是放后。

 

关于怎么引入iconfont,可以去看我的另一篇weex引入iconfont

因为placeholder也不好插入icon图片,经查阅资料以后提供两种方案。

第一种解决方案:

尝试在placeholder里直接写iconfont的代码,需要通过vue的绑定方式,绑定到placeholder上,原本为的代码要将&#替换成\u。

<!-- 搜索框 iconfont方案 -->
<div class="sm-search">
    <input type="text" class="input iconfont" :placeholder="iconPH" :value="txtInput"/>
</div>
data() {
	return {
	    iconPH: '\ue611 搜索小程序',
	    txtInput: '', // input值
	}
},	

运行结果:

android:

       ios:    

这个方式在ios上是没问题的,但是android却显示不出来,然后我找了很久都没找到原因,放弃了,

如果你们知道,可以留言告诉我,我先换种方式处理。

 

 

第二解决方案:

通过利用绝对定位去展示,搭配@blur和@focus来控制显隐

<!-- 搜索框 定位方案-->
<div class="sm-search">
  <input type="text" class="input" @focus="onfocus" @blur="onblur" @input="onSearchInput" />
  <text class="iconfont input-placeholder" v-if="showPlaceholder">&#xe611; 搜索小程序</text>
</div>
data() {
  return {
	showPlaceholder: true, // input框是否展示placeholder
	txtInput: '', // input值
  }
},
methods: {
	// 获取搜索框输入的值
	onSearchInput(event) {
		this.txtInput = event.value;
	},
	onfocus() {
		this.showPlaceholder = false;
	},
	onblur() {
		if (!this.txtInput) {
			this.showPlaceholder = true;
		}
	},
}

运行结果是ios和android都可以显示出来。

### 如何在 `el-input` 中设置或控制 `placeholder` 属性 在 Element-UI 的 `el-input` 组件中,可以通过 `placeholder` 属性来定义占位符文本。该属性允许开发者自定义当输入框为空时显示的内容[^2]。 #### 自定义样式的 Placeholder 如果需要进一步定制 `placeholder` 的样式,可以利用 CSS 来实现特定效果。例如,仅针对带有某个类名的 `el-input` 设置不同的字体颜色、大小以及斜体风格: ```css /* 针对 custom-placeholder 类下的 input 占位符 */ .custom-placeholder .el-input__inner::placeholder { color: #909399; font-size: 14px; font-style: italic; } ``` 上述代码片段展示了如何通过伪元素 `::placeholder` 修改默认外观[^1]。 #### 基本用法示例 下面是一个简单的 HTML 结构展示如何结合 Vue 和 Element-UI 实现带 `placeholder` 的输入框功能: ```html <template> <div> <!-- 定义了一个具有搜索图标的输入框 --> <el-input placeholder="请输入内容" v-model="inputValue"> <i slot="prefix" class="el-input__icon el-icon-search"></i> </el-input> </div> </template> <script> export default { data() { return { inputValue: '' // 绑定到输入框的数据模型 }; } }; </script> ``` 此模板创建了一个具备前缀图标(即放大镜符号)并提示用户“请输入内容”的输入区域。 #### 动态调整 Placeholder 文字 除了静态设定外,在某些场景下可能还需要依据条件动态改变占位符文字。这可通过绑定 JavaScript 表达式完成: ```html <el-input :placeholder="dynamicPlaceholder" v-model="inputDynamic"></el-input> ``` 配合脚本部分如下所示: ```javascript data() { return { dynamicPlaceholder: '初始状态', inputDynamic: '' }; }, methods: { updatePlaceholder(newText) { this.dynamicPlaceholder = newText; } } // 调用方法即可更改 placeholder 显示的文字 this.updatePlaceholder('新的提示信息'); ``` 以上方式提供了灵活性以便适应不同交互需求。 #### 使用按需加载优化性能 为了减少项目体积,推荐采用按需导入的方式引入所需组件而非整个库文件。以下是配置过程的一个例子: ```javascript import Vue from 'vue'; import { Input } from 'element-ui'; // 只加载必要的模块 import 'element-ui/packages/input/style/css'; Vue.component(Input.name, Input); new Vue({ el: '#app' }); ``` 注意这里只选择了 `Input` 组件及其对应样式表[^3]。 ### 总结 综上所述,无论是基础应用还是高级定制化处理,Element-UI 提供了丰富的选项支持开发人员高效构建美观实用的前端界面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值