css3讓div隨鼠標(biāo)移動(dòng)而抖動(dòng)起來(lái)
發(fā)布時(shí)間:2014-02-10 16:13:25 作者:佚名
我要評(píng)論

一些背景圖片隨著鼠標(biāo)的移動(dòng)的反向的移動(dòng),感覺(jué)跟不錯(cuò),下面為大家介紹喜愛(ài)使用css3讓div隨鼠標(biāo)移動(dòng)而抖動(dòng)起來(lái),感興趣的朋友可以參考下
最近發(fā)現(xiàn)一個(gè)網(wǎng)站,感覺(jué)用戶體驗(yàn)不錯(cuò),特別是一些背景圖片隨著鼠標(biāo)的移動(dòng)的反向的移動(dòng),感覺(jué)跟不錯(cuò),于是就試著寫(xiě)了個(gè)小demo模仿一下
<!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>
<div class="layer A"></div>
<div class="layer B"></div>
<div class="layer C"></div>
</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>
說(shuō)明一下分別拿到每個(gè)div的長(zhǎng)度和寬度,通過(guò)比例算出相對(duì)于窗口的合適的偏移量,max是每個(gè)div左右偏移最多不超過(guò)的值
效果展示
復(fù)制代碼
代碼如下:<!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>
<div class="layer A"></div>
<div class="layer B"></div>
<div class="layer C"></div>
</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>
說(shuō)明一下分別拿到每個(gè)div的長(zhǎng)度和寬度,通過(guò)比例算出相對(duì)于窗口的合適的偏移量,max是每個(gè)div左右偏移最多不超過(guò)的值
效果展示

相關(guān)文章
css3 transform過(guò)渡抖動(dòng)問(wèn)題解決
這篇文章主要介紹了css3 transform過(guò)渡抖動(dòng)問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)2020-10-23css3動(dòng)畫(huà)效果抖動(dòng)解決方法
這篇文章主要介紹了css3動(dòng)畫(huà)效果抖動(dòng)解決方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-03CSS 控制Html頁(yè)面高度導(dǎo)致抖動(dòng)問(wèn)題的原因
CSS 控制Html頁(yè)面高度導(dǎo)致抖動(dòng),這類由高度導(dǎo)致頁(yè)面抖動(dòng)的問(wèn)題,其實(shí)究其根本原因是滾動(dòng)條是否顯示導(dǎo)致的2014-08-11CSS3新浪微博模板商店鼠標(biāo)懸停圖片抖動(dòng)特效
一款鼠標(biāo)懸停在圖片上,圖片搖晃抖動(dòng)的CSS3特效代碼2014-03-06CSS 控制因Html頁(yè)面高度導(dǎo)致抖動(dòng)的問(wèn)題解決方法
由高度導(dǎo)致頁(yè)面抖動(dòng)的問(wèn)題,其實(shí)究其根本原因是滾動(dòng)條是否顯示導(dǎo)致的,具體解決方法如下,有類似情況的朋友可以參考下,希望對(duì)大家有所幫助2013-08-23- 這篇文章主要介紹了CSS3實(shí)現(xiàn)紅包抖動(dòng)效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-23