css案例(三)

苹果菜单案例:
*{margin:0;padding:0;list-style: none;}
.waper{width: 100%;position: absolute;bottom:0; text-align: center;}
.waper img{width: 50px;}
window.onload = function(){
    var oBox = document.getElementById('box');
    var aImg = document.getElementsByTagName('img');
    document.onmousemove = function(ev){
        var ev = ev || window.event;
        for(var i=0;i<aImg.length;i++){
            var x = aImg[i].offsetLeft + aImg[i].offsetWidth/2;
            var y = aImg[i].offsetTop + aImg[i].offsetHeight/2 + oBox.offsetTop;

            var b = ev.clientX - x;
            var a = ev.clientY - y;
            var c = Math.sqrt(Math.pow(b,2) + Math.pow(a,2));
            var scale = 1 - c/200;
            if(scale < 0.5){
                scale = 0.5;
            }
            aImg[i].style.width = scale * 100 +"px";
            aImg[i].style.height = scale * 100 +"px";
        }
    }
}  

<div class="waper" id="box">
    <img src="10img/icon1.png">
    <img src="10img/icon2.png">
    <img src="10img/icon3.png">
    <img src="10img/icon4.png">
    <img src="10img/icon5.png">
</div>

圆周运动案例:

#dot{width: 10px;height: 10px;border-radius: 50%;background: red;position: absolute;left: 800px;top: 300px;}
.box{border: 1px solid #000;position:absolute;}
window.onload = function(){
    var oDot = document.getElementById('dot');
    var r = 100;
    var x = 700;
    var y = 300;
    var num = 0;
    setInterval(function(){
        num++;
        var a = Math.sin(num*Math.PI/180) * r;
        var b = Math.cos(num*Math.PI/180) * r;
        oDot.style.left = x + b + "px";
        oDot.style.top = y + a + "px";
        var oBox = document.createElement("div");   // 创建一个新的div
        oBox.className = "box";
        document.body.appendChild(oBox);
        oBox.style.left = oDot.offsetLeft + "px";
        oBox.style.top = oDot.offsetTop + "px";
    },10);
}
<div id="dot"></div>
三维的圆周运动

#dot{width: 20px;height: 20px;border-radius: 50%;background: red;position: absolute;left: 800px;top: 300px;}
.box{border: 1px solid #000;position:absolute;}
window.onload = function(){
    var oDot = document.getElementById('dot');
    var r = 100;
    var x = 700;
    var y = 300;
    var num = 0;
    setInterval(function(){
        num++;
        var a = Math.sin(num*Math.PI/180) * r;
        var b = Math.cos(num*Math.PI/180) * r;
        oDot.style.left = x + b + "px";
        oDot.style.width = a/100*10 + 20 + "px";
        oDot.style.height = a/100*10 + 20 + "px";
    },10);
}
<div id="dot"></div>
265网站实例:

*{margin:0;padding:0;list-style: none;}
#box{width:171px;height:68px;position:absolute;top:200px;left: 300px;background: url(13img/bg.png) no-repeat 0 0;}
#dot1{border:2px solid #000;border-radius: 50%;position: absolute;left: 118px;top: 33px;}
#dot2{border:2px solid #000;border-radius: 50%;position: absolute;left: 140px;top: 33px;}
var oBox = document.getElementById('box');
var oDot1 = document.getElementById('dot1');
var oDot2 = document.getElementById('dot2');
var r = 4  // dot移动的范围
var L1 = 118;
var T1 = 33;
var L2 = 140;
var T2 = 33;
document.onmousemove = function(ev){
    var ev = ev || window.event;
    changeFn(oDot1,ev.clientX,ev.clientY,L1,T1);
    changeFn(oDot2,ev.clientX,ev.clientY,L2,T2);
    function changeFn(obj,x,y,l,t){
        var changeX = 0;
        var changeY = 0;
        var b = Math.abs( x - ( obj.offsetLeft + obj.parentNode.offsetLeft) );
        var a = Math.abs( y - ( obj.offsetTop + obj.parentNode.offsetTop) );
        if( x > obj.offsetLeft + obj.parentNode.offsetLeft && y < obj.offsetTop + obj.parentNode.offsetTop){        // 右上
            var changeX = Math.sin(Math.atan(b/a)) * r; 
            var changeY = Math.cos(Math.atan(b/a)) * -r; 
        }else if(x > obj.offsetLeft + obj.parentNode.offsetLeft && y > obj.offsetTop + obj.parentNode.offsetTop){       // 右下
            var changeX = Math.sin(Math.atan(b/a)) * r; 
            var changeY = Math.cos(Math.atan(b/a)) * r; 
        }else if(x < obj.offsetLeft + obj.parentNode.offsetLeft && y > obj.offsetTop + obj.parentNode.offsetTop){       // 左下
            var changeX = Math.sin(Math.atan(b/a)) * -r; 
            var changeY = Math.cos(Math.atan(b/a)) * r; 
        }else if(x < obj.offsetLeft + obj.parentNode.offsetLeft && y < obj.offsetTop + obj.parentNode.offsetTop){       // 左上
            var changeX = Math.sin(Math.atan(b/a)) * -r; 
            var changeY = Math.cos(Math.atan(b/a)) * -r; 
        }
        obj.style.left = l + changeX + "px";
        obj.style.top = t + changeY + "px";
    }
}
<div id="box">
    <div id="dot1"></div>
    <div id="dot2"></div>
</div>
sin函数的轨迹案例:

#box{width: 5px;height: 5px;background: red;position:absolute;top: 200px;left: 100px;}
.box{border:1px solid #000;position:absolute;}
var oBox = document.getElementById('box');
var T = 200;
var L = 100;
var val = 70;
var n = 0;
setInterval(function(){
    n++;
    oBox.style.left = L + (n*Math.PI/180)*val + "px";
    oBox.style.top = T - Math.sin(n*Math.PI/180)*val + "px";
    var oDiv = document.createElement('div');
    oDiv.className = "box";
    document.body.appendChild(oDiv);
    oDiv.style.left = oBox.offsetLeft + "px";
    oDiv.style.top = oBox.offsetTop + "px";
},10); 
<div id="box"></div>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值