javascript - 如何立即更改鼠标悬停时的背景?

标签 javascript jquery html css

我们有一个网站,其中的元素有背景图片,而它们的父元素有不同的背景图片。在鼠标悬停(:悬停)时,背景会更改为特定颜色。问题是变化不会立即发生,并且在几分之一秒内背景变得透明并且父背景可见。我想让更改立即发生,或者至少使背景从图像更改为特定颜色而不透明(如果它不透明,那么我不介意保留效果)。我们如何使用 CSS 来实现(我更喜欢不用 JavaScript)?

这是我们的 CSS 代码:

.main_block .items_block .items_container .thumbnail {
    border: 1px solid #cdced0;
    border-radius: 3px;
    padding: 5px 3px 10px;
    float: left;
    background-size: cover;
    background-position: center center;
}

.main_block .items_block .items_container .thumbnail:hover,
.main_block .items_block .items_container .thumbnail.active_thumbnail {
    border: 1px solid #FCC20F !important;
    background: #F9F158 !important;
    background-size: cover !important;
    background-position: center center !important;
}

.main_block .items_block .items_container .thumbnail {
    background-image: url([some url]);
}

顺便说一句,如果没有 .thumbnail:hover 中的 background-position: center center !important;,背景图像也会在鼠标悬停时移动。

最佳答案

如果图像不透明,您可以尝试:

常规状态:

background: url("[some url]") no-repeat scroll 0 0 #F9F158;

悬停:

background: url("[some url]") no-repeat scroll -9999 -9999 #F9F158;

所以这基本上只是将不透明的图像移出视野以显示悬停时的背景颜色。

如果它确实使用透明度,您也可以尝试将整个事情视为恶意并使用相同的基本技术首先显示您的图像:

background: url("[some url]") no-repeat scroll 0 0 transparent;

然后在悬停时移动到同一图形内的平面色域:

background: url("[some url]") no-repeat scroll 100 0 transparent;

关于javascript - 如何立即更改鼠标悬停时的背景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21728713/

相关文章:

javascript - Jquery拖放改变div内容

html - child 在不脱离人流的情况下占据整个 body 宽度

javascript - 设置值后 PHP 变量似乎为空

javascript - 使用 jQuery 如何获取目标元素上的右键单击坐标

javascript - 使用 javascript 禁用与网站的连接

php - 如何检查 url 在 jQuery 中是否没有查询字符串?

javascript - 单个页面中多个可折叠 d3 树的单击事件

javascript - 在新的 Google 站点中自动调整 Accordion 高度

javascript - 使用 Facebook Javascript API 检索用户信息(即位置、电子邮件)

javascript - 将输入乘以动态生成的表行