vue实现icon图标切换,点击按钮后改变当前按钮样式

前言

一个按钮里放了两个icon图标,点击按钮改变icon图标。
本次使用的Heroicons图标库
点击前效果图如下:
点击前
点击后效果图:
点击后变实线


一、引入heroicons图标

import { HomeIcon, UserIcon, CubeIcon, MapIcon, OfficeBuildingIcon } from '@heroicons/vue/outline';//引入细线icon
import { HomeIcon as HomeIconB, UserIcon as UserIconB, OfficeBuildingIcon as OfficeBuildingIconB, MapIcon as MapIconB, CubeIcon as CubeIconB } from '@heroicons/vue/solid'//引入粗线icon,避免粗细icon冲突,对icon重命名

二、具体实现代码

<router-link @click="openButton('home')" to="/index">
	<HomeIcon v-if="icon != 'home'" class="w-6" />
	<HomeIconB v-if="icon == 'home'" class="iconM" />
	<div :class="{ activeFont: icon == 'home' }">社区</div>
</router-link>
<script lang="ts">
export default {
	data() {
		return {
			icon: 'home',
		};
	},
	methods: {
		openButton(iconV) {
			this.icon = iconV;
		},
	},
};
</script>
可以通过在Vue中绑定一个点击事件来实现这个效果,具体可以按照以下步骤进行: 1. 在模板中添加一个包含搜索图标和搜索框的容器,并为搜索图标绑定一个点击事件: ``` <template> <div class="search-container"> <i class="search-icon" @click="toggleSearch"></i> <input type="text" v-if="showSearch" class="search-input" placeholder="输入关键词进行搜索" /> </div> </template> ``` 2.Vue组件中定义一个变量来控制搜索框的显示与隐藏,并在点击事件中切换该变量的值: ``` <script> export default { data() { return { showSearch: false } }, methods: { toggleSearch() { this.showSearch = !this.showSearch } } } </script> ``` 3.样式表中定义搜索图标和搜索框的样式,以及控制搜索框的显示与隐藏: ``` <style> .search-container { position: relative; } .search-icon { position: absolute; top: 50%; left: 10px; transform: translateY(-50%); width: 20px; height: 20px; background-image: url('path/to/search-icon.png'); background-repeat: no-repeat; background-size: contain; cursor: pointer; } .search-input { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); width: 200px; height: 30px; border: 1px solid #ccc; border-radius: 4px; padding: 0 10px; outline: none; transition: all 0.2s ease-in-out; opacity: 0; visibility: hidden; } .search-input.show { opacity: 1; visibility: visible; } </style> ``` 这样就可以实现点击搜索图标后搜索框的显示与隐藏了。如果需要实现搜索功能,还需要在输入框中绑定一个`v-model`指令,并在搜索按钮上绑定一个点击事件,触发搜索功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值