您的位置
主页 > 网站技术 > CSS/HTML > » 正文

css3让div随鼠标移动而抖动起来

来源: 站长圈 点击:

直接上代码

复制代码代码如下:

<!DOCTYPE html> 

<html> 

<head> 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 

<title>Insert title here</title> 

<style type="text/css"> 

.layer { 

width:400px; 

height:400px; 

background-color:#FF7373; 

transa 

.A { 

position: absolute; 

top: 23px; 

left: 10px; 

.B { 

position: absolute; 

top: 223px; 

left: 516px; 

.C { 

position: absolute; 

top: 384px; 

left: 1000px; 

</style> 

</head> 

<body> 

<p class="layer A"></p> 

<p class="layer B"></p> 

<p class="layer C"></p> 

</body> 

<script type="text/javascript"> 

var items = document.getElementsByClassName("layer"); 

document.addEventListener('mousemove', function (evt){ 

var x = evt.clientX; 

var y = evt.clientY; 

//console.log(x); 

var winWidth = window.innerWidth; 

var winHeight = window.innerHeight; 

var halfWidth = winWidth / 2; 

var halfHeight = winHeight / 2; 

var rx = x - halfWidth; 

var ry = halfHeight - y; 

var length = items.length; 

var max = 30; 

for (var i = 0 ; i < length ; i++) { 

var dx = (items[i].getBoundingClientRect().width/max)*(rx / -halfWidth); 

var dy = (items[i].getBoundingClientRect().height/max)*(ry / halfHeight); 

items[i].style['transform'] = items[i].style['-webkit-transform'] = 'translate('+dx+'px,'+dy+'px)'; 

}, false); 

</script> 

</html> 

说明一下分别拿到每个p的长度和宽度,通过比例算出相对于窗口的合适的偏移量,max是每个p左右偏移最多不超过的值。




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明