有什么方法可以让该图像使用定义的 CSS 过渡淡入淡出吗?现在它刚刚弹出到完全不透明。
var makeImage = function() {
$('#image').remove();
$(document.body).append('<img id="image" class="fadeIn" src="http://a57.foxnews.com/global.fncstatic.com/static/managed/img/Scitech/660/371/tardar-sauce-the-cat.jpg?ve=1" />');
var img = $('#image')[0];
console.log(img.style);
img.style["opacity"] = 1;
};
.fadeIn {
opacity: 0;
-moz-transition: opacity 5.5s ease 0.300s;
-webkit-transition: opacity 5.5s ease 0.300s;
-o-transition: opacity 5.5s ease 0.300s;
transition: opacity 5.5s ease 0.300s;
}
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"></script>
<title>Fade Example</title>
<input id="makeButton" type="button" value="Make and fade" onclick="makeImage()" ; />
编辑:我意识到jquery提供了一个fadeIn函数。我很遗憾在这个例子中使用了 jquery,因为重点是使用 CSS 过渡属性来做到这一点。
它会弹出完全不透明度,因为您在脚本中将不透明度设置为完全( 1 = 100% ):
img.style["opacity"] = 1;
我不确定 CSS 转换是如何工作的,但既然你仍然使用 jQuery:
var makeImage = function() {
$('#image').remove();
$(document.body).append('<img id="image" class="fadeIn" src="http://a57.foxnews.com/global.fncstatic.com/static/managed/img/Scitech/660/371/tardar-sauce-the-cat.jpg?ve=1" />');
var img = $('#image')[0];
console.log(img.style);
img.fadeIn(5500);
};
听起来你的问题最简单的答案就是使用 JQuery 的 .fadein()。
JQuery 自己的示例代码应该有助于参考这里。
$('#clickme').click(function() {
$('#book').fadeIn('slow', function() {
// Animation complete
});
});
这将运行一次,并且
forwards
将指定的所有值设置为 100% 时给出的值。
. fadeIn {
animation: fade-in 0.8s cubic-bezier(0.250, 0.460, 0.450, 0.940) forwards;
}
@keyframes fade-in {
0% {
opacity: 0;
100% {
opacity: 1;
}
并且是一个纯 CSS 解决方案,就像您在编辑中所要求的那样。
这是一个解决方案。它只是使用jquery的css功能。这是 jsfiddle 中的:https://jsfiddle.net/74rgwh38/
$(document).ready(function() {
$("#clickHere").click(function() {
$('#image').remove();
$(document.body).append('<img id="image" class="fadeIn" src="http://a57.foxnews.com/global.fncstatic.com/static/managed/img/Scitech/660/371/tardar-sauce-the-cat.jpg?ve=1" />');
setTimeout(function(){ $("#image").css('opacity', '1'); }, 1);
});
});
.fadeIn {
opacity: 0;
-moz-transition: opacity 5.5s ease 0.3s;
-webkit-transition: opacity 5.5s ease 0.3s;
-o-transition: opacity 5.5s ease 0.3s;
transition: opacity 5.5s ease 0.3s;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<button id="clickHere">
ClickHere
</button>
</body>
它不是纯CSS,但它使用CSS过渡属性。
我假设,您只是想在单击按钮时应用类
.fadeIn
,因为您已经在使用 jQuery,请执行以下操作:
img.addClass('fadeIn');
我猜,你想要的是在单击或加载时更改/切换图像的不透明度(通过使用 CSS3 而不是 jQuery),试试这个:
创建两个 CSS 类,如下所示:
.fadeIn {
-webkit-transition: opacity 1s ease-in-out;
-moz-transition: opacity 1s ease-in-out;
-o-transition: opacity 1s ease-in-out;
transition: opacity 1s ease-in-out;
}
.transparent
{
opacity:0;
}
只需单击按钮或加载时即可切换透明类:
$('#toggle').click(function(){
$('#image').toggleClass('transparent');
});
请参阅此 fiddle 以获取完整且有效的代码。