javascript - 悬停在 CSS opacity 兄弟子元素中

标签 javascript css hover opacity

我试图在悬停时使图像半透明,并在其上显示文本。

我已经实现了一个纯 CSS 解决方案,但是它有一个问题:当我将鼠标悬停在图像上时,会显示文本(链接),但是如果我将鼠标悬停在该链接上,它就会失去悬停在图像,并开始闪烁,因为它陷入了悬停循环,“悬停”。

一个例子会更加明确,所以这是我的代码:http://jsfiddle.net/zm2Jt/3/

CSS 部分:

.fadeImg {
   opacity: 1;
}
.fadeImg~.hoverDisplay {
    display: none;
}
.fadeImg:hover {
    opacity: 0.5;
}
.fadeImg:hover~.hoverDisplay {
    display: block;
}

文本使用绝对位置放置在图像上。由于链接是 .hoverDisplay 的子项,即绝对定位的跨度,我认为我无法使用 CSS 来防止鼠标悬停在链接上。

我知道我可以添加 JS 来解决问题(输入图像时添加类,离开图像时删除类),但我宁愿使用 CSS,尽管我怀疑这是不可能的。

感谢您的回答:-)

最佳答案

在很大程度上砍掉你的 CSS 怎么样?

Demo

Demo 2 (方框内的 a 标签,您可以调整)

.formContainer .teamImg {
    float: left;
    margin-left: 20px;
    position: relative;
    width: 300px;
}

.teamImg span {
    opacity: 0;
    height: 100%;
    width: 100%;
    position: absolute;
    background: rgba(255,255,255,.5);
    top: 0;
    left: 0;
    -webkit-transition: all .5s;
    -moz-transition: all .5s;
    transition: all .5s;
}

.teamImg:hover span {
    opacity: 1;
}

我只是将 span 标签 absolute 定位到容器元素,我也在此处转换不透明度,但我也使用 rgba() 来制作元素背景略微不透明。


从零开始,简化想法

Demo 3

<div>
    <img src="URL_HERE" />
    <span>Write anything here</span>
</div>


div {
    float: left;
    border: 1px solid #aaa;
    position: relative;
}

div span {
    position: absolute;
    height: 100%;
    width: 100%;
    background: rgba(255,255,255,.5);
    top: 0;
    left: 0;
    opacity: 0;
    -webkit-transition: all .5s;
    -moz-transition: all .5s;
    transition: all .5s;
}

div:hover span {
    opacity: 1;    
}

关于javascript - 悬停在 CSS opacity 兄弟子元素中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18216520/

相关文章:

javascript - 如何在 Laravel 8 中使用 JavaScript 获取?

javascript - 在 .load() 和第一个函数完成后添加第二个函数

javascript - 如何覆盖文本框段落中的特定文本值

jquery - 将 css 悬停类更改为 jquery 单击

html - 当元素 Y 悬停时移动元素 X?

html - 从列表项中的链接中删除格式

javascript - 如何在 Owl Carousel 中创建导航箭头

javascript - 切换内联模式 - jQuery UI datepicker

javascript - 为 fullcalendar 4.2.0 上的事件添加动画背景

php - PDO 弄乱了我的 CSS/HTML 布局