使用CSS - ExtJs进行鼠标悬停时如何更改面板上的图像?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用CSS - ExtJs进行鼠标悬停时如何更改面板上的图像?相关的知识,希望对你有一定的参考价值。

我正在尝试使用CSS或SASS进行鼠标悬停/鼠标切换时更改图像。但是,为了完成这一点,我总能做到:

header = panel.getHeader().getEl();,然后这样做:

        //mouse enter event
        header.on('mouseover', function (e) {
       .......
       .......
       }, me);

        //mouseleave event
        header.on('mouseleave', function (e) {
        ........
        }, me);

但是,我正在尝试使用CSS或SASS完成相同的功能。

基本上:

a)加载手风琴时,默认情况下应显示所有图像。 (面板1应显示图像1)。

b)如果面板展开,则应显示图像2,并且应显示其折叠图像1(在面板1上 - 与其他面板相同的功能)。

c)在鼠标悬停时应显示图像2,在鼠标左键上应显示图像1(在面板1上)。

这是我到目前为止使用的CSS,它在鼠标悬停/鼠标离开时在第一个面板上工作,但我不确定如何显示图像。

// Show IMAGE 1 by default
.x-panel-header-custom1{ 
url('http://www.iconhot.com/icon/png/brush-intense-messenger/256/msn-web-
2.png');
}

// SHOW IMAGE 2 when expanded or onmouseover
.x-panel-header-custom1:hover{
 background: red;
background-image: 
 url('https://image.flaticon.com/icons/png/128/12/12195.png'); 
}

谁能告诉我我错过了什么?

这是工作的FIDDLE

注意:我不想对图像使用Font awesome,任何其他图像都很好,就像我正在使用的那样。非常感谢提前!

答案

行注释在CSS中无效(块注释) - 实际上你让我质疑我的理智,直到我发现它。

当删除麻烦的行注释时,如果你查看html,你清楚地看到

.x-accordion-item .x-accordion-hd

选择器覆盖

.x-panel-header-custom1

选择器,因此如果您希望代码工作,则必须在所有类上使用!important。像这样:

.x-panel-header-custom1 {
 background-image: url('http://www.iconhot.com/icon/png/brush-intense-messenger/256/msn-web-2.png') !important;
}

.x-panel-header-custom1:hover {
  background: red;
 background-image: url('https://image.flaticon.com/icons/png/128/12/12195.png') !important; 
}

.x-panel-header-custom1-collapsed {
  background-image: url('https://image.flaticon.com/icons/png/128/12/12195.png') !important;
}

另外,我注意到你的第三个选择器(折叠了一个)缺少标题字符串。

Fiddle

以上是关于使用CSS - ExtJs进行鼠标悬停时如何更改面板上的图像?的主要内容,如果未能解决你的问题,请参考以下文章

CSS样式:悬停时如何更改图像?

使用 css 在鼠标悬停时更改 asp.net 按钮的颜色

使用css将鼠标悬停在按钮上时如何更改站点背景图像?

在 ExtJS 中,如何禁用悬停在禁用工具栏按钮上的样式更改?

将鼠标悬停在 li 上时更改图像并使用 CSS 永久保存该图像

更改嵌套 div 内鼠标悬停时的图层颜色