VueJS-v-bind:样式+悬停

我需要将CSS悬停与VueJS v-bind:style指令一起使用,但是找不到有关它的信息。

我需要为悬停绑定样式,但是v-bind:style.hover={} 不起作用。所有属性都将从后端获取,因此我需要动态绑定样式。

还有其他方法可以使用VueJS在鼠标悬停或CSS悬停时绑定样式吗?

这是我的代码

这是对象:

button: {
    colorBackd: '#1e2021',
    colorBackdHover: '#000000',
    text: 'Results',
    color: '#d3e0ff',
    colorHover: "#ffffff",
    borderColor: '#d3e0ff',
    borderColorHover: "#ffffff"
},

这是需要与样式绑定的html元素

<button type="button"
    :style="{
    color:button.color,
        backgroundColor:button.colorBackd,
        borderColor:button.borderColor,
    }"
    class="btn btn-outline-info large-button">

        {{ button.text }}

</button>

谢谢

阿飞路易2020/03/30 18:23:02

您可以为Vuejs组件分配一个ID,然后在样式表中应用所需的悬停样式。

<button id="styledButton" type="button"
:style="{
color:button.color,
    backgroundColor:button.colorBackd,
    borderColor:button.borderColor,
}"
class="btn btn-outline-info large-button">

    {{ button.text }}
</button>

然后在标签中

<style>
styledButton:hover {
color: #FFFFFF
};
</style>

如果希望悬停样式包含任何动态数据。制作一个调用计算属性的标签。

<style>{{computedStyle}}</style>
村村2020/03/30 18:23:02

我想更改悬停时的z-index,使悬停的p标签显示在顶部。为此,我必须听事件以及一些价值。

在此处输入图片说明在此处输入图片说明在此处输入图片说明

<template>
...
<p @mouseover="changeZIndex"
   @mouseleave="changeZIndexToOriginal({$event,old_z_index})
>
...
</template>


<script>
...methods
changeZIndex(e){
    //change to new z-index
    e.target.style.zIndex = 5 //to show on top
}
changeZIndexToOriginal(e){
    //e.$event is  an event which is trirgered. to get event along with some value we have to use this approach
    // e.old_z_index is z-index that I want to set back again. I am just using loop index to set z-index
    e.$event.target.style.zIndex = e.old_z_index
}
...
</script>

使用以上方法,我们可以更改与目标元素相关的任何内容。

2020/03/30 18:23:02

如果使用单个文件组件,则只需将按钮样式设置为作用域:

<template>
    <button></button>
</template>

<style scoped>
    button {
        /* your button style here */
    }
</style>

甚至对于更受限的样式,这里显示了一些模块:如何在VueJS单个文件组件中正确使用“作用域”样式?

米亚2020/03/30 18:23:02

其他方式(使用css变量)。

您需要使用样式创建HTML

<style>
     div[vueid=${_uid}] { --btn-hover: ${`Here your hover brush`} }
</style>

并将其注入您的组件。

<template>
   <div vueid="_uid">
      <button></button>
      <div v-html="styleCode"></div>
   </div>
</template>

然后,只需在静态css文件中使用此变量即可设置按钮样式。

button:hover { background: var(--btn-hover); }

注意:您可以在:root选择器中描述默认变量值