Jquery 设置不透明度动画无法正常工作
我正试图用下面的代码为一个元素的不透明度设置动画Jquery 设置不透明度动画无法正常工作,jquery,fade,Jquery,Fade,我正试图用下面的代码为一个元素的不透明度设置动画 window.setInterval(function(){ var target = $('.before'), opacity = target.css('opacity'); target.fadeTo(600, (opacity==1?0:1)) }, 5000); 当不透明度从1设置动画到0时,效果很好,但当从0设置动画到1时,它根本不会设置动画,只是会立即从0更改为1 我尝试过使用fadeTo()a
window.setInterval(function(){
var target = $('.before'),
opacity = target.css('opacity');
target.fadeTo(600, (opacity==1?0:1))
}, 5000);
当不透明度从1设置动画到0时,效果很好,但当从0设置动画到1时,它根本不会设置动画,只是会立即从0更改为1
我尝试过使用fadeTo()animate()toggle()的各种方法,但都没有用
使用fadeToggle()按预期工作,但实际上不是一个选项,因为它会在动画完成后向元素添加显示:无,这会扰乱页面的布局
编辑
已解决:
我正在使用的网站使用的是jQuery 1.4.4,更新为1.10.1修复了此问题。尝试使用
window.setInterval(function(){
$('.before').animate($('.before').css('opacity',1-0:1),1000);
}, 5000);代码>您打算支持哪些浏览器?使用css可以很容易地做到这一点——只需使用jQuery添加/删除一个类,然后使用css转换来处理不透明度渐变。不透明度开/关在lte IE8中仍然有效,但不会褪色
或者,您可以使用fadeToggle并添加“display:block!”!重要的;'(或您需要的任何显示)添加到元素。将.val()添加到结尾似乎会阻止动画完全工作。嗯。。。这可能是浏览器的问题吗?在Chrome中尝试了您的代码,它工作正常: