JS實(shí)現(xiàn)超級(jí)好看的鼠標(biāo)小尾巴特效
看完這個(gè)保證你有手就行,制作各種好看的小尾巴!

全部代碼如下,看注釋可以輕易看懂
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
/*div樣式*/
#main{
width: auto;height: 1500px;margin: 0;background-color: black;
}
</style>
</head>
<body>
<div id="main"></div>
<script>
//==========鼠標(biāo)星球尾巴JS代碼============
//========函數(shù):獲取當(dāng)前鼠標(biāo)的坐標(biāo)=========
function getMousePosition(event) {
var x = 0;//x坐標(biāo)
var y = 0;//y坐標(biāo)
//documentElement 返回一個(gè)文檔的文檔元素。
doc = document.documentElement;
//body 返回文檔的body元素
body = document.body;
//解決兼容性
if (!event) event = window.event;
//解決鼠標(biāo)滾輪滾動(dòng)后與相對(duì)坐標(biāo)的差值
//pageYoffset是Netscape特有
if (window.pageYoffset) {
x = window.pageXOffset;
y = window.pageYOffset;
} else {//其他瀏覽器鼠標(biāo)滾動(dòng)
x = (doc && doc.scrollLeft || body && body.scrollLeft || 0)
- (doc && doc.clientLeft || body && body.clientLeft || 0);
y = (doc && doc.scrollTop || body && body.scrollTop || 0)
- (doc && doc.clientTop || body && body.clientTop || 0);
}
//得到的x加上當(dāng)事件被觸發(fā)時(shí)鼠標(biāo)指針向?qū)τ跒g覽器頁(yè)面(或客戶區(qū))的水平坐標(biāo)
x += event.clientX;
//得到的x加上當(dāng)事件被觸發(fā)時(shí)鼠標(biāo)指針向?qū)τ跒g覽器頁(yè)面(或客戶區(qū))的垂直坐標(biāo)
y += event.clientY;
//返回x和y
return {'x': x, 'y': y};
}
//========函數(shù):獲取當(dāng)前鼠標(biāo)的坐標(biāo)=========
//=====生成從minNum到maxNum的隨機(jī)數(shù)=====
function randomNum(minNum,maxNum){
switch(arguments.length){
case 1:
return parseInt(Math.random()*minNum+1,10);
case 2:
return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10);
default:
return 0;
}
}
//=====生成從minNum到maxNum的隨機(jī)數(shù)======
//======給整個(gè)文檔綁定一個(gè)鼠標(biāo)移動(dòng)事件======
document.onmousemove = function(event){
// 在頁(yè)面創(chuàng)建一個(gè)標(biāo)簽,(這里是創(chuàng)建一個(gè)自定義標(biāo)簽styleImg )
var styleImg = document.createElement("div");
//獲取隨機(jī)數(shù)1-5,根據(jù)隨機(jī)數(shù)來(lái)設(shè)置標(biāo)簽的樣式
var r = randomNum(1,5);
switch (r) {
case 1:
//設(shè)置圖片的路徑,根據(jù)不同的路徑就可以更改成不同的樣式
styleImg.innerHTML="<img src='../static/muban/images/xing01.png' style='width: 50px;height: auto;'/>"
break;
case 2:
styleImg.innerHTML="<img src='../static/muban/images/xing02.png' style='width: 50px;height: auto;'/>"
break;
case 3:
styleImg.innerHTML="<img src='../static/muban/images/xing03.png' style='width: 50px;height: auto;'/>"
break;
case 4:
styleImg.innerHTML="<img src='../static/muban/images/xing04.png' style='width: 50px;height: auto;'/>"
break;
case 5:
styleImg.innerHTML="<img src='../static/muban/images/xing05.png' style='width: 50px;height: auto;'/>"
break;
}
// 由于要設(shè)置動(dòng)畫,設(shè)置left 和top,因此,必須要設(shè)置定位
styleImg.style.position = 'absolute'
// 設(shè)置標(biāo)簽的初始位置,即鼠標(biāo)的當(dāng)前位置
var x = getMousePosition(event).x;
var y = getMousePosition(event).y;
// 設(shè)置styleImg的坐標(biāo)
styleImg.style.top = y +"px";
styleImg.style.left = x + "px";
//綁定testDiv為當(dāng)前鼠標(biāo)小尾巴生效的區(qū)域
var testDiv = document.getElementById("main");
// 將新建的標(biāo)簽加到頁(yè)面的 body標(biāo)簽中
testDiv.appendChild(styleImg);
// 在文檔中有超出的地方就會(huì)不顯示,所以盡量綁定到頁(yè)面的div中
// 設(shè)置溢出隱藏,為了防止鼠標(biāo)在移動(dòng)的過程中會(huì)觸發(fā)上下滾動(dòng)條
testDiv.style.overflow = 'hidden';
//
var count = 0;
//setInterval() 方法可按照指定的周期(以毫秒計(jì))來(lái)調(diào)用函數(shù)或計(jì)算表達(dá)式
var time = setInterval(function(){
// 設(shè)置定時(shí)器 ,讓每一次生成的標(biāo)簽在指定的周期內(nèi)修改相應(yīng)的透明度
count += 5;
styleImg.style.opacity = (100-count)/100 ;
}, 30)
// setTimeout() 方法用于在指定的毫秒數(shù)后調(diào)用函數(shù)或計(jì)算表達(dá)式。
// 設(shè)置延時(shí)定時(shí)器, 在一定的時(shí)間后清除上面的定時(shí)器,讓創(chuàng)建的標(biāo)簽不再進(jìn)行變化
setTimeout(function(){
// 使用 clearInterval() 來(lái)停止執(zhí)行setInterval函數(shù)
clearInterval(time);
// 刪除創(chuàng)建的標(biāo)簽
testDiv.removeChild(styleImg);
},250)
}
</script>
</body>
</html>
ps:以上代碼參考了多篇不同的文獻(xiàn)后自己敲的,沒有面向VC寫博客哦!
最后把圖片素材送給你們吧,只要在上面代碼中做簡(jiǎn)單的修改,便可以實(shí)現(xiàn)其他樣式的小尾巴





好東西記得要收藏哦!!!
到此這篇關(guān)于JS實(shí)現(xiàn)超級(jí)好看的鼠標(biāo)小尾巴特效的文章就介紹到這了,更多相關(guān)JS實(shí)現(xiàn)鼠標(biāo)小尾巴內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- JS鼠標(biāo)事件大全 推薦收藏
- 使用JS或jQuery模擬鼠標(biāo)點(diǎn)擊a標(biāo)簽事件代碼
- js與jquery中獲取當(dāng)前鼠標(biāo)的x、y坐標(biāo)位置的代碼
- js 鼠標(biāo)點(diǎn)擊事件及其它捕獲
- js改變鼠標(biāo)的形狀和樣式的方法
- javascript 鼠標(biāo)事件總結(jié)
- javascript監(jiān)聽鼠標(biāo)滾輪事件淺析
- js鼠標(biāo)點(diǎn)擊按鈕切換圖片-圖片自動(dòng)切換-點(diǎn)擊左右按鈕切換特效代碼
- js中鼠標(biāo)滾輪事件詳解(firefox多瀏覽器)
- js判斷鼠標(biāo)位置是否在某個(gè)div中的方法
相關(guān)文章
使用php的mail()函數(shù)實(shí)現(xiàn)發(fā)送郵件功能
php中的mail()函數(shù)允許您從腳本中直接發(fā)送電子郵件,下面這篇文章主要給大家介紹了關(guān)于如何使用php的mail()函數(shù)實(shí)現(xiàn)發(fā)送郵件功能的相關(guān)資料,需要的朋友可以參考下2021-06-06
javascript attachEvent綁定多個(gè)事件執(zhí)行順序問題
執(zhí)行順序是沒有規(guī)律的,但是每次執(zhí)行的順序是一樣的,如果是隨機(jī)那么應(yīng)該每次執(zhí)行的順序都不一樣才對(duì),這才是我想要說明的2010-10-10
JS在onclientclick里如何控制onclick的執(zhí)行
這篇文章主要介紹了JS在onclientclick里如何控制onclick的執(zhí)行的相關(guān)資料,需要的朋友可以參考下2016-05-05
TypeScript實(shí)現(xiàn)單鏈表的示例代碼
鏈表是一種物理存儲(chǔ)單元上非連續(xù)、非順序的存儲(chǔ)結(jié)構(gòu),本文主要介紹了TypeScript實(shí)現(xiàn)單鏈表的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-08-08
JavaScript封裝的常用工具類庫(kù)bee.js用法詳解【經(jīng)典類庫(kù)】
這篇文章主要介紹了JavaScript封裝的常用工具類庫(kù)bee.js用法,結(jié)合實(shí)例形式詳細(xì)分析了經(jīng)典類庫(kù)bee.js常見的手機(jī)、身份證、郵箱校驗(yàn),以及字符串操作、四則運(yùn)算、正則驗(yàn)證等相關(guān)操作的封裝與使用技巧,需要的朋友可以參考下2018-09-09
JavaScript中的50+個(gè)實(shí)用工具函數(shù)小結(jié)
JavaScript可以做很多出色的事情,本篇文章給大家整理50+個(gè)實(shí)用工具函數(shù),可以幫助你提高工作效率并可以幫助調(diào)試代碼,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06
JavaScript實(shí)現(xiàn)圖片本地預(yù)覽功能【不用上傳至服務(wù)器】
這篇文章主要介紹了JavaScript實(shí)現(xiàn)圖片本地預(yù)覽功能,針對(duì)非IE瀏覽器的HTML5濾鏡功能及IE瀏覽器的相關(guān)組件功能實(shí)現(xiàn)不上傳至服務(wù)器預(yù)覽本地圖片的效果,需要的朋友可以參考下2017-09-09

