html - 更改图像不透明度并在鼠标悬停在其上时添加链接背景

标签 html css css-transitions

我有图像的框架样式:

.frame {
    background:#efefef;
    border:1px solid #f6f6f6;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.4); /* @todo Old Browsers Fix */
    margin-bottom:15px;
    padding:4px;
}

在我从事的元素的一个地方,我有以下 HTML 代码:

<a href="#" class="preview">
    <img class="frame" src="http://placehold.it/288x159" alt="" />
</a>

基本上,我想在鼠标悬停时更改文件不透明度并向链接添加背景(预览图标)。我有以下代码:

.preview img.frame {
    margin:0;
    position:relative;
}
.preview:hover {
    background:url('../img/icon_zoom.png') center center no-repeat;
    display:inline-block;
    z-index:40;
}
.preview img { /* @todo Add different browsers rules */
    opacity: 1;
    /*moz-transition-property:opacity;
    -moz-transition-timing-function:ease-out;
    -moz-transition-duration:500ms;*/
    -moz-transition:opacity 1s ease-in-out;
}
.preview:hover img {
    opacity:.5;
    -moz-transition:opacity 1s ease-in-out;
    /*-moz-transition-property:opacity;
    -moz-transition-duration:500ms;
    -moz-transition-timing-function:ease-out;*/
    display:block;
    position:relative;
    z-index:-1;
}

但是我遇到了几个问题: - 我怎样才能只显示图像主体的背景(目前它也显示在边框上)? - 为什么不透明度在 Chrome 中没有改变?

jsFiddle添加。如您所见,它在 FF 中有效,但在 Chrome 中无效。

最佳答案

问题似乎是您正在将 display 更改为 inline-block。把它拿出来,它应该具有相同的功能并且可以正常工作。

改变一些其他的东西似乎让它按照你的预期工作。 http://jsfiddle.net/minitech/v2vtw/2/

关于html - 更改图像不透明度并在鼠标悬停在其上时添加链接背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455895/

相关文章:

javascript - 如何用同一个按钮启动多个单独的功能?

javascript - 将js对象转为html

html - 当页面标记为事件时悬停时,子导航无法正常工作

jquery - 战地风云3标志效果

html - 类删除的完整动画

html - 为什么 MP4 视频无法在 Firefox 上使用 HTML5 <video> 标签

asp.net - 静态宽度 DIV 旁边的动态宽度 DIV

javascript - 对话框和自动高度

javascript - 即使元素已经消失,悬停状态也会在过渡期间保持不变

html - 使用内联 CSS 动画制作 HTML 横幅广告