这是一款使用纯js制作的炫酷随鼠标位置变化移动速度图片放大缩小展示特效。整个js代码短小精悍,100多行代码即完成了令人惊叹的效果。

HTML

html结构非常简单:

<div style="position:absolute;left:50%;top:50%">
    <div style="position:absolute;width:720px;height:560px;left:-360px;top:-280px;background:#fff"></div>
    <div style="position:absolute;left:-40px;top:-6px;color:#000;font-family:arial;font-size:0.9em">Loading...</div>
    <div id="screen" style="position:absolute;width:640px;height:480px;left:-320px;top:-240px;overflow:hidden"></div>
</div>
<div id="images" style="visibility:hidden">
    <img title="infinite" src="images/1.jpg">
    <img title="yellow" src="images/2.jpg">
    <img title="earth" src="images/3.jpg">
    <img title="dream" src="images/4.jpg">
    <img title="flowers" src="images/5.jpg">
</div>
                

CSS

css代码如下,只是简单的定位一些元素和给出宽度和高度:

html {overflow: hidden;}
body {
    background-image:-webkit-radial-gradient(circle at top right,#5596BC,#75BEC7);
    background-image:-moz-radial-gradient(circle at top right,#5596BC,#75BEC7);
    background-image:-o-radial-gradient(circle at top right,#5596BC,#75BEC7);
    background-image:-ms-radial-gradient(circle at top right,#5596BC,#75BEC7);
    background-image:radial-gradient(circle at top right,#5596BC,#75BEC7);
    width: 100%;
    height: 100%;
    cursor: crosshair;
}
.spanSlide {
    position: absolute;
    background: #000;
    font-size: 1px;
    overflow: hidden;
}
.imgSlide {
    position: absolute;
    left: 5%;
    top: 5%;
    width: 90%;
    height: 90%;
    overflow: hidden;
}
.txtSlide {
    position: absolute;
    top: 5%;
    left: 50px;
    width:100%;
    color:#FFF;
    font-family: arial, helvetica, verdana, sans-serif;
    font-weight: bold;
    font-size:96px;
    letter-spacing:12px;
    filter: alpha(opacity=70);
    -moz-opacity:0.7;
    opacity:0.7;
}
                

JAVASCRIPT

所有的js代码仅仅是下面的73行代码:

var ym=0;
var ny=0;
createElement = function(container, type, param){
    o=document.createElement(type);
    for(var i in param)o[i]=param[i];
    container.appendChild(o);
    return o;
}
mooz = {
    O:[],
    /////////
    mult:6,
    nbI:5,
    /////////
    rwh:0,
    imgsrc:0,
    W:0,
    H:0,
    Xoom:function(N){
        this.o = createElement(document.getElementById("screen"), "span", {
            'className':'spanSlide'
        });
        img = createElement(this.o, "img", {
            'className':"imgSlide",
            'src':mooz.imgsrc[N%mooz.imgsrc.length].src
        });
        spa = createElement(this.o, "span", {
            'className':"imgSlide"
        });
        txt = createElement(spa, "span", {
            'className':"txtSlide",
            'innerHTML':mooz.imgsrc[N%mooz.imgsrc.length].title
        });
        this.N = 10000+N;
    },
    mainloop:function(){
        with(this){
            for(i=0; iny)ny=ym/2;
}
window.onload = function(){
    ym = ny+50;
    mooz.oigres();
}