我正在使用 Mootools 更改我的背景图像 css 属性:
$(document.body).setStyle('background-image','url(' + pBackground + ')');
这是它的工作原理,但是如何在图片变化之间产生一种淡化效果呢?
谢谢,佩德罗
您不能专门淡化背景......您必须淡化具有背景的元素。
对于您的情况,我建议使用<div>
包含<body>
HTML 中所有内容的 a,即:
<html>
<body>
<div id="main">
</div>
</body>
然后,您可以设置 #main div 的 background-image 属性,并执行以下操作:
function backgroundChange(pBackground)
{
var m = $('main');
var fx = new Fx.Tween(m,{
duration: 1500,
onComplete: function(){
m.setStyle('background-image','url(' + pBackground + ')');
m.fade('in');
}
});
fx.start('opacity',1,0);
}
提醒一下,该 div 的任何子元素也会褪色,因此如果您希望背景褪色而其上的元素保持不透明,则需要绝对定位任何子元素。
当您有可变长度的内容时,绝对定位所有元素会带来其他问题,但也有解决方法。
不知道我在说什么,但是因为它不是 html 文档的一部分,所以它不是一个“元素”,所以 javascript 不应该能够处理它。
但是,这只是一个想法,并且根据您网站的外观,您可以尝试设置不透明度,以模拟身体上的不透明度,这可能会导致您想要的效果..