js實(shí)現(xiàn)鼠標(biāo)跟隨運(yùn)動(dòng)效果
鼠標(biāo)跟隨運(yùn)動(dòng)效果展示
1、使用命令創(chuàng)建基本結(jié)構(gòu)ul.cursorPlay#cursorPlay>li*12>a>img+div>span
2、給span標(biāo)簽添加字段
3、設(shè)置基本的樣式
1、cursorPlay的寬度 992px,高度600px
2、cursorPlay li背景為白色,內(nèi)邊距為8px,外邊距5px,顯示浮動(dòng)為左浮動(dòng)
3、cursorPlay li a,cursorPlay li a img顯示為塊狀并且為相對布局
4、cursorPlay li a添加overflow:hidden
5、cursorPlay li a div為絕對布局,寬度和高度均為100%,設(shè)置背景顏色為rgba
4、js添加動(dòng)態(tài)效果(方向0,1,2,3分別為上,右,下,左)
1)、給綁定鼠標(biāo)進(jìn)入或者出去的事件
$("#cursorPlay li").on("mouseenter mouseleave",function(event){
var evType = event.type;
var direction = getDir($(this), {
x: event.pageX,
y: event.pageY
});
// console.log("evtype:"+evType+",dir:"+direction);
moveTo($(this),direction, evType);
});
2、
2)、使用getDir獲取鼠標(biāo)移動(dòng)的方向,coordinates坐標(biāo)
計(jì)算鼠標(biāo)劃入畫出方向函數(shù)(搜索關(guān)鍵詞“jquery計(jì)算鼠標(biāo)劃入劃出方向”)
direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;
function getDir($el, coordinates){
var w = $el.width(),
h = $el.height(),
x = (coordinates.x - $el.offset().left - (w / 2)) * (w > h ? (h / w) : 1),
y = (coordinates.y - $el.offset().top - (h / 2)) * (h > w ? (w / h) : 1),
direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;
return direction;
}
3)、添加移動(dòng)函數(shù)moveTo,三個(gè)參數(shù)分別為選擇器,方向,鼠標(biāo)劃入畫出類型,通過判斷鼠標(biāo)劃入類型,來自定義選擇器初始位置,然后重定義css樣式,當(dāng)鼠標(biāo)劃出時(shí)再重定義每個(gè)方向上的位置
function moveTo($el, direction, type){
var $layer = $el.find("div");
var coord = {};
if(type === "mouseenter"){
switch(direction){
case 0 : $layer.css("top","-100%").css("left","0px");break;
case 1 : $layer.css("left","100%").css("top","0px");break;
case 2 : $layer.css("top","100%").css("left","0px");break;
case 3 : $layer.css("left","-100%").css("top","0px");break;
}
coord = {left:0,top:0}
}else{
switch(direction){
case 0 : coord = {left:0,top:'-100%'};break;
case 1 : coord = {left:'100%',top:0};break;
case 2 : coord = {left:0,top:'100%'};break;
case 3 : coord = {left:'-100%',top:0};break;
}
}
$layer.animate(coord,300);
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- js實(shí)現(xiàn)簡單鼠標(biāo)跟隨效果的方法
- 簡單實(shí)現(xiàn)js鼠標(biāo)跟隨效果
- js鼠標(biāo)跟隨運(yùn)動(dòng)效果
- javascript鼠標(biāo)跟隨運(yùn)動(dòng)3種效果(眼球效果,蘋果菜單,方向跟隨)
- Js鼠標(biāo)跟隨代碼小手點(diǎn)擊實(shí)例方法
- JS實(shí)現(xiàn)的簡單鼠標(biāo)跟隨DiV層效果完整實(shí)例
- JS實(shí)現(xiàn)的鼠標(biāo)跟隨代碼(卡通手型點(diǎn)擊效果)
- 原生js實(shí)現(xiàn)鼠標(biāo)跟隨效果
- JavaScript實(shí)現(xiàn)的鼠標(biāo)跟隨特效示例【2則實(shí)例】
- js實(shí)現(xiàn)鼠標(biāo)跟隨小游戲
相關(guān)文章
微信開發(fā) JS-SDK 6.0.2 經(jīng)常遇到問題總結(jié)
本篇文章主要介紹了"微信微信JS-SDK 6.0.2 遇到問題 ",主要涉及到微信微信JS-SDK 6.0.2 填坑筆記 方面的內(nèi)容,對于微信微信JS-SDK 6.0.2 填坑筆記 感興趣的同學(xué)可以參考一下。2016-12-12
js實(shí)現(xiàn)界面向原生界面發(fā)消息并跳轉(zhuǎn)功能
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)界面向原生界面發(fā)消息并跳轉(zhuǎn)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11
JavaScript學(xué)習(xí)筆記之創(chuàng)建對象
在JavaScript中對象是一種基本的數(shù)據(jù)類型,在數(shù)據(jù)結(jié)構(gòu)上是一種散列表,可以看作是屬性的無序集合,除了原始值其他一切都是對象。這篇文章主要給大家介紹JavaScript學(xué)習(xí)筆記之創(chuàng)建對象,需要的朋友參考下吧2016-03-03
Javascript中for循環(huán)語句的幾種寫法總結(jié)對比
如果您希望一遍又一遍地運(yùn)行相同的代碼,并且每次的值都不同,那么使用循環(huán)是很方便的,javascript中for循環(huán)也是非常常用的,下面這篇文章主要介紹了Javascript中for循環(huán)的幾種寫法,需要的朋友可以參考借鑒,一起來看看吧。2017-01-01
JavaScript實(shí)現(xiàn)隨機(jī)點(diǎn)名器實(shí)例詳解
這篇文章主要介紹了JavaScript隨機(jī)點(diǎn)名器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05
Javascript 調(diào)試?yán)?Firebug使用詳解六
有時(shí)候,為了更清楚方便的查看輸出信息,我們可能需要將一些調(diào)試信息進(jìn)行分組輸出,那么可以使用console.group來對信息進(jìn)行分組,在組信息輸出完成后用console.groupEnd結(jié)束分組。2009-07-07
原生javascript AJAX 三級聯(lián)動(dòng)的實(shí)現(xiàn)代碼
這篇文章主要介紹了原生javascript AJAX 三級聯(lián)動(dòng)的實(shí)現(xiàn)代碼,非常不錯(cuò)代碼簡單易懂,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-05-05

