当前位置: 首页 > 编程笔记 >

解决vant title-active-color与title-inactive-color不生效问题

贺兴昌
2023-03-14
本文向大家介绍解决vant title-active-color与title-inactive-color不生效问题,包括了解决vant title-active-color与title-inactive-color不生效问题的使用技巧和注意事项,需要的朋友参考一下

1、创建vue项目

2、使用vant组件

npm install vant --S

全局引用时在main.html" target="_blank">js引入

import Vant from 'vant';
import 'vant/lib/index.css';
Vue.use(Vant);

假如你引入之后发现页面的样式和组件都挂载了,但是console控制台会报错,说xxxx组件没有register,这个时候很有可能是你的vant插件版本有问题,重新下载一个最新的vant就可以了,现在是2.6.0版本

好,接下来继续

在需要使用下拉框的地方使用下拉框组件

 <van-dropdown-menu>
 <van-dropdown-item
  v-model="value"
 :options="developList"
 />
</van-dropdown-menu>
 
data () {
 return {
 value: ''
 developList: [
  {
  value: '1',
  text: '我是第一个'
  },
 {
  value: '2',
  text: '我是第二个'
  },
 ]
 }
}

假如是这样的话那么下拉框就会默认显示第一个字眼“wishing第一个”,然后你在点击下拉框选择第二个时也会改变成“我是第二个”

如果你不想有默认选中,并且一开始就显示请选择这样的提示字眼,那么我们可以去看看vant的api文档,发现有一个title的字眼,这个title就是下拉框的显示文字,一开始很多人以为这个下拉框的title只是用来显示然后点击下拉框的item之后会自动绑定过的,但其实是错误的,以下就是一个很好的例子

<van-dropdown-menu>
 <van-dropdown-item
 title="请选择"
 v-model="value"
 :disabled="disabled"
 :options="developList"
 />
</van-dropdown-menu>
 
data () {
 return {
 value: ''
 developList: [
  {
  value: '1',
  text: '我是第一个'
  },
 {
  value: '2',
  text: '我是第二个'
  },
 ]
 }
}

你会发现请选择的自然从来没变过,无论你选择了第一个还是第二个,那么你就会想title是不是绑定,接下来就有以下操作

<van-dropdown-menu>
 <van-dropdown-item
 :title="title"
 v-model="value"
 :disabled="disabled"
 :options="developList"
 />
</van-dropdown-menu>
 
data () {
 return {
 value: ''
 title:''请选择,
 developList: [
  {
  value: '1',
  text: '我是第一个'
  },
 {
  value: '2',
  text: '我是第二个'
  },
 ]
 }
}

加下来发现还是没有改动啊,那是不是绑定的值没有发生改变了,好像是的,因为你值定义了这个title,这个title就是下拉框选择的显示,只是你没有title的时候vant把你选择的text文字映射到title上去了,

一旦你自己使用title进行绑定,那么每次修改时就要修改title,查看vant api可以发现有change事件,接下来就可以操作了

<van-dropdown-menu>
 <van-dropdown-item
 :title="title"
 v-model="value"
 :options="developList"
 @change="changeDevelop"
 />
</van-dropdown-menu>
 
data () {
 return {
 value: ''
 title:''请选择,
 developList: [
  {
  value: '1',
  text: '我是第一个'
  },
 {
  value: '2',
  text: '我是第二个'
  },
 ]
 }
},
 
methods: {
 changeDevelop (i) {
 this.title = this.developList[i-1].text
 },
}

这就没问题啦!

补充知识:简单粗暴修改vant组件nav-bar的title(标题的字体颜色)

最近我有人问我关于vant组件的nav-bar的标题颜色需要改但是不会,我去网上找了一下,发现都很复杂

然后我发现通过深度选择器可以修改nav-bar的标题的字体颜色

代码:

<template>
 <view>
 <demo-block title="基础用法" class="reset">
 <van-nav-bar title="标题" left-text="返回" right-text="按钮" left-arrow @clickLeft="onClickLeft" @clickRight="onClickRight" id="reset"/>
 </demo-block>

 <demo-block title="高级用法">
 <van-nav-bar title="标题" left-text="返回" left-arrow>
 <van-icon name="search" slot="right" custom-class="icon" />
 </van-nav-bar>
 </demo-block>

 </view>
</template>

<script>
 import Page from '../../common/page';

 export default {
 data() {
 return {

 }
 },
 onLoad() {},
 methods: {
 onClickLeft() {
 console.log("11");//TODO 进不来
 uni.showToast({
  title: '点击返回',
  icon: 'none'
 });
 },

 onClickRight() {
 uni.showToast({
  title: '点击按钮',
  icon: 'none'
 });
 }
 }
 }
</script>

<style>
 .icon {
 color: #1989fa;
 } 
 #reset /deep/ .van-ellipsis{
 color: red !important;
 }
</style>

效果:

解释: 给组件定义个id,再通过这个深度选择器获取title的标签的类名,修改它的颜色即可.

以上这篇解决vant title-active-color与title-inactive-color不生效问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • NAME \color - 用于指定数学的颜色。 概要 (SYNOPSIS) { \color #1 #2 } OPTIONS 输入 描述 #1 color #2 Mathematics to be colored 描述 \color命令用于指定数学的颜色。 例 \color{red}{ \frac{1+\sqrt{5}}{2} }$ \color{red}{ \frac{1+\sqrt{5}}

  • new LSGlobe.Color(red, green, blue, alpha) 颜色类,用红、绿、蓝和透明度的值来描述(这几个值的范围是从0到1)。 Name Type Default Description red Number 1.0 optional 红色分量(R) green Number 1.0 optional 绿色分量(G) blue Number 1.0 optional 蓝

  • Random.color() Random.color() 随机生成一个有吸引力的颜色,格式为 '#RRGGBB'。 Random.color() // => "#3538B2" Random.hex() Random.hex() 随机生成一个有吸引力的颜色,格式为 '#RRGGBB'。 Random.hex() // => "#3538B2" Random.rgb() Random.rgb()

  • 介绍 (Introduction) Color类表示默认sRGB颜色空间中的颜色或ColorSpace标识的任意颜色空间中的颜色。 类声明 以下是java.awt.Color类的声明: public class Color extends Object implements Paint, Serializable 字段 (Field) 以下是java.awt.geom.Arc2

  • 描述 (Description) color属性设置元素的前景色(通常是文本的颜色)。 可能的值 (Possible Values) color - 应该是任何有效的颜色值。 适用于 (Applies to) 所有HTML元素。 DOM语法 (DOM Syntax) object.style.color = "#a1a1a1"; 例子 (Example) 以下是显示此属性效果的示例 - <htm

  • 计算机屏幕使用红色,绿色和蓝色光组件,因此有时称为RGB screens 。 在Logo的Set菜单上,我们可以设置三个屏幕元素的颜色 - The turtle's pen Turtle的填充物(如外壳的油漆桶) The screen background 我们通过向左和向右移动这三个滑块来设置颜色。 请记住,黑色是没有所有颜色,白色是所有颜色。 混合光不像混合涂料。 例如,如果你混合红色和绿色油