html - 背景图像过渡不适用于表单按钮

标签 html css css-transitions transition

我有一个像这样的简单表格:

<section class="subscribe" title='Lorem Ipsum'>
    <form class="form-wrapper cf" method="post">
        <input class="tiptipNewsletterInfo" id="emailInputText" name="email" placeholder="Enter your email here..." />
        <button class="showforDesktopsOnly" id="submitBtnForDesktop" type="submit">Subscribe</button>
    </form>
</section>

现在,我想更改鼠标悬停在提交按钮上时显示的背景图像。为此,我尝试使用以下 CSS,但它不起作用:

.form-wrapper #submitBtnForDesktop {
    background: url("http://i.imgur.com/ANkUR4e.png") no-repeat 0 0 transparent;
    transition: background-image 0.5s;
}

.form-wrapper #submitBtnForDesktop:hover {
    background: url("http://i.imgur.com/ANkUR4e.png") no-repeat 0 -28px transparent;
}

我目前在其他地方使用 transition: background-image 0.5s; 来更改鼠标悬停时的其他背景图像,但在这种情况下它不起作用。

有人知道为什么吗?

JSFiddle:http://jsfiddle.net/ahmadka/49nzM/

最佳答案

css3 转换仅适用于数字和(在某些浏览器中)颜色十六进制值,但不适用于您尝试做的图像背景

要实现您想要的“从一个图像淡入到另一个图像”,您需要更改 html&css;

html

....
<button class="showforDesktopsOnly" id="submitBtnForDesktop" type="submit">
    <div class="hax"></div>
    Subscribe
</button>
....

CSS

....
#submitBtnForDesktop .hax{
    width:100%;
    height:100%;
    background: url("http://i.imgur.com/ANkUR4e.png") no-repeat 0 0 transparent;
    transition: opacity 0.5s;
    opacity:1
}
#submitBtnForDesktop:hover .hax{
    opacity:0
}
....

关于html - 背景图像过渡不适用于表单按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18806204/

相关文章:

javascript - 将链接设置为等于上次单击的链接

javascript - 出于某种原因,Javascript 甚至在我的 HTML/CSS 页面加载之前加载

jquery - 自举视差

html - 减小尺寸时内容超出 div

html - Overflow-y 无法在 body 上的 div 上正常工作

css - 使用 CSS 3 淡入淡出?

javascript - 字段变为空白

javascript - 将一个表格列表中的单元格高度分配给另一个列表

css - 如何使用 transform : scale and origin? 改善悬停动画效果

html - 尝试在表格边界内的表格标题和单元格中创建悬停状态,并且不移动内容