觉得静态的飞机云不够美,干脆搞成动态的,原理还是很非常简单,对背景的偏移量做出调整,用了JQuery选择器(这东西太好用了)和HTML5的本地存储(来保持动画的一致性)。
最终效果图 演示地址

首先准备两张背景图(GIF的alpha质量有问题,用了透明的PNG,IE6核心的直接无视了)

然后开始码代码
function head_animate(){
//speed = Math.round(618*Math.sin((i/114)));这条是实验渐入样式,发现不好看,姑且留着
var x = localStorage.offset_x;
var y = localStorage.offset_y;
speed = 3820-y;
x-=3;y--;//为什么是3:1请看下面的注意
localStorage.setItem('offset_x',x);
localStorage.setItem('offset_y',y);
x_y=x+'px '+y+'px';//Jquery对于简写的属性两个以上的变量不支持,所以用拼字符串
$('#page').css( {backgroundPosition: x_y} );
//$('#head_s i').html(' i:'+i + ' speed:'+speed );
if (y > 14){
//距离顶部还有14px的时候停下
var ht=setTimeout('head_animate()',speed);
//速度会越来越慢
}
}
/*Jquery的启动*/
$(document).ready(function(){
//header animate
//这两个是我主题的偏移量
if(('localStorage' in window) && window['localStorage'] !== null){
var x = localStorage.offset_x;
var y = localStorage.offset_y;
if (x == null || y == null){
//首次启动
x=628;y=110;
//存储值
localStorage.setItem('offset_x',x);
localStorage.setItem('offset_y',y);
}
var ht=setTimeout('head_animate()',5000);
}
else{
//IE!老浏览器随便给个地方算了
$('#page').css( {backgroundPosition: '500px 40px'} );
}
});
需要注意的是飞机云图片的角度,因为电脑是一个个像素点组成的,不能用非整数,用非整数的话飞机云就会跳动起来。角度折换成图片的宽高比,我的是3:1(1:1即45度效果是最好的,但是对头部的高度要求不是一般的高)。飞机云可以在最后放上渐变到消失,不过我现在还没这样的打算哈,因为这样图片会大得多。
因为使用HTML5的本地存储,所以飞机云一旦飞到一定高度之后以后永远停在上面了,所以哈,同志们朋友们要视这玩意作为陪衬哈
参考了 丸子的HTML5本地存储