以jQuery完成滑鼠控制地圖平移捲動
顏怡宏 Bob Yen
- 恆逸教育訓練中心-資深講師
- 技術分類:多媒體
常常看到網頁上有許多地圖,只要在地圖上面移動滑鼠,就能夠捲動地圖,而這種效果可以藉由jQuery的強大功能,配合CSS的設定,依照下面的步驟,就能夠輕易完成。
首先只要在<body>區塊中,將要捲動的地圖設定成為<div>標籤的背景圖形,並且加上id屬性,並且指定影像來源,例如設定為:
<body>
<div id="myDiv"></div>
</body>
接著在<style>區塊中設定這個<div>區塊的CSS外觀屬性
<style>
#myDiv{ /*此行指定要捲動影像的區塊*/
width:500px; /*此行設定區塊的寬度*/
height:500px; /*此行設定區塊的高度,需與地圖高度相同*/
background-image:url(images/map.jpg); /*此行設定區塊的背景地圖位置*/
cursor:pointer; /*此行設定區塊的游標形式*/
box-shadow:5px 5px 10px black; /*此行設定區塊的外框陰影*/
}
</style>
然後先引入jQuery.js這個JavaScript檔案來使用,可以由jQuery官方網站下載。
https://jquery.com/download
<script src="jquery.js"></script>
最後於<script>標籤中再加入以下JavaScript程式碼就可以完成了。
<script>
$(document).ready(init);/*執行初始化函式*/
function init(){/*初始化函式*/
$("#myDiv").mousemove(/*滑鼠於區塊內移動時觸發*/
function (e){ /*滑鼠移動處理函式*/
var photoWidth=2500; /*地圖的總寬度*/
var divWidth=500; /*區塊的高度,與CSS中的設定相同*/
var moveRange = photoWidth-divWidth; /*算出地圖可捲動距離*/
var scale = moveRange/divWidth; /*算出滑鼠移動與地圖捲動之比例*/
$("#myDiv").css({backgroundPosition:-e.offsetX*scale+"px"});
/*以jQuery的CSS指令,設定區塊背景捲動的距離*/
}
);
}
</script>
如此就能夠成功的使地圖隨著滑鼠移動而捲動了。