以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>
如此就能夠成功的使地圖隨著滑鼠移動而捲動了。
