基于JQuery模仿蘋果桌面的Dock效果(初級(jí)版)
新的一天新的開始,今天要分享的是用JQuery模仿蘋果操作系統(tǒng)桌面的Dock效果,之所以稱之為初級(jí)版,是因?yàn)槠渲羞€有一些bug,顯示效果并不穩(wěn)定。由于時(shí)間的關(guān)系,這些bug還沒有修復(fù),希望高手們不吝賜教,提出更好的意見,希望可以做出更好的版本分享給大家。
這是靜態(tài)的效果圖,好吧,看上去還想模像樣

下面是HTML頁面的代碼:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JQueryProject1</title>
<meta name="author" content="Frank_Ren" />
<link type="text/css" rel="stylesheet" href="css/myCSS.css" />
<script type="text/javascript" src="js/jquery-1.4.2.js"></script>
<script type="text/javascript" language="JavaScript" src="js/myJSFile.js"></script>
<!-- Date: 2012-09-17 -->
</head>
<body>
<div id="topBody" align="center">
<p id="topMenu" align="center">
<img alt="Home" src="images/home.png" />
<img alt="Music" src="images/music.png" />
<img alt="Calendar" src="images/calendar.png" />
<img alt="Email" src="images/email.png" />
<img alt="Portfolio" src="images/portfolio.png" />
<img alt="Video" src="images/video.png" />
<img alt="Link" src="images/link.png" />
<img alt="History" src="images/history.png" />
<img alt="RSS" src="images/rss.png" />
</p>
</div>
</body>
</html>
沒有CSS裝飾的頁面那叫一個(gè)慘不忍睹,所以使用適當(dāng)?shù)腃SS進(jìn)行裝飾是必不可少的
#topBody{
height: 300px;
}
#topMenu{
height: 256px;
line-height: 256px;
}
#topMenu img{
height: 50px;
width: 50px;
}
才畢業(yè)幾個(gè)月,解方程都忘記了,所以當(dāng)鼠標(biāo)移動(dòng)時(shí)圖標(biāo)的放大算法讓我很頭疼啊,這里給出的算法只是個(gè)人想法,僅供參考,希望各位高手提出更好的算法。而且這里只考慮了鼠標(biāo)在水平位置移動(dòng)時(shí)的算法,還沒有加入鼠標(biāo)垂直移動(dòng)式的算法。
$(function(){
$("#topBody").mousemove(function(e){
var mouseX = parseInt(e.pageX);
$("#topMenu img").each(function(){
var obj = $(this);
var objWidth = obj.css("width");
//獲取圖片中心水平坐標(biāo)
var objX = parseInt(obj.offset().left) + parseInt(objWidth.substr(0,objWidth.length-2))/2;
var x = Math.abs(objX-mouseX);
if(x<75 && x>-75){
obj.css("width",(128-((78*x*x)/(75*75)))+"px");
obj.css("height",(128-((78*x*x)/(75*75)))+"px");
}
});
});
});
說說JQuery獲取鼠標(biāo)的方法,當(dāng)執(zhí)行mousemove(function(e){})這個(gè)方法是,方法的參數(shù)e提供了e.pageX獲取水平坐標(biāo)、e.pageY獲取垂直坐標(biāo),同時(shí)也可以使用var x = e.originalEvent.x || e.originalEvent.layerX || 0;獲取鼠標(biāo)的水平位置、同樣可以用 var y = e.originalEvent.y || e.originalEvent.layerY || 0;獲取鼠標(biāo)的垂直位置。

當(dāng)鼠標(biāo)移動(dòng)速度比較慢時(shí)顯示效果還可以接受,不過當(dāng)鼠標(biāo)快速移動(dòng)時(shí)時(shí)圖標(biāo)是放大了,不過相應(yīng)的bug也出來了。

懇請(qǐng)各位走過路過的高手、大神們,提出寶貴的修改意見及更好的算法,謝謝觀賞。
相關(guān)文章
JavaScript獲取網(wǎng)頁支持表單字符集的方法
這篇文章主要介紹了JavaScript獲取網(wǎng)頁支持表單字符集的方法,涉及javascript中acceptCharset方法的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-04-04
ie下動(dòng)態(tài)加態(tài)js文件的方法
接觸過相關(guān)知識(shí)的都知道,動(dòng)態(tài)向DOM中添加js的script標(biāo)簽時(shí),在各種瀏覽器下會(huì)有不同的表現(xiàn)。2011-09-09
Bootstrap模態(tài)框插入視頻的實(shí)現(xiàn)代碼
這篇文章主要介紹了Bootstrap模態(tài)框插入視頻的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-06-06
詳解javascript 正則表達(dá)式之分組與前瞻匹配
本文主要講解javascript 的正則表達(dá)式中的分組匹配與前瞻匹配的,需要對(duì)正則的有基本認(rèn)識(shí),本人一直對(duì)兩種匹配模棱不清,還有不清楚的朋友跟隨腳本之家小編一起看看吧2018-05-05
addEventListener()和removeEventListener()追加事件和刪除追加事件
這篇文章主要給大家介紹了關(guān)于addEventListener()和removeEventListener()追加事件和刪除追加事件的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
Javascript實(shí)現(xiàn)Vue跨組件通信的方法詳解
這篇文章主要為大家詳細(xì)介紹了Vue的跨組件通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
使用OpenLayers3 添加地圖鼠標(biāo)右鍵菜單
這篇文章主要介紹了使用OpenLayers3 添加地圖鼠標(biāo)右鍵菜單的相關(guān)資料,需要的朋友可以參考下2015-12-12

