1. 程式人生 > >利用js來完成圖片的放大

利用js來完成圖片的放大

                            從小白的開始

 請參考我的上傳的資源:利用js來完成圖片的放大,從小做起,希望能夠和大家一起學習。

1)、先設定好頁面,定一個最外面的盒子div,盒子裡面放好兩個div,第一個div裡面放多一個div和圖片標籤,另一個div裡面放一個圖片的標籤。設定好樣式

   2)、position的說明:有幾個值----absoluterelativestatic

fixed,  absolute絕對位置,相對於父元素的絕對位置,fixed絕對位置,相對於瀏覽器視窗的絕對位置,relative相對位置,都可以通過topleft樣式來設定定位元素左、上外邊距邊界與其包含塊左邊界之間的偏移量,但是唯獨static不可以通過lefttop樣式來設定邊距。

   3)、overflow:當元素溢位元素框的時候的處理的情況,其值可以為,hiddenvisiblescrollautoinherithidden-->內容會被修剪,且其餘部分是不可見的;visible--->預設值,內容不會被修剪,會呈現在元素框之外;

scroll--->內容會被修剪,但是瀏覽器會顯示滾動條以便來檢視內容;auto---->如果內容被修剪,則瀏覽器會顯示滾動條來以便檢視內容;inherit--->規定元素從父元素那裡遺傳overflow屬性。

   4)、cursor:設定滑鼠游標的圖形。

(5)獲取最外層的div,且使用children[]方法來獲取最外層div裡面相應的元件,如divimg

(6)、獲取到裡面的div--->small,給他註冊滑鼠事件onmouseenter,設定style.display的屬性為block

(7)、當滑鼠離開裡面的盒子時候,註冊滑鼠事件

onmouseleave,設定style.display的屬性為none

(8)、當滑鼠在盒子上移動的時候,給註冊滑鼠移動事件onmousemove,獲取滑鼠在盒子上面的座標,var x=e.pageX-box.offsetLeft;    var y=e.pageY-box.offsetTop;  滑鼠在覆蓋層的中點上,x-=mask.offsetWidth/2    y-=mask.offsetHeight/2; 判斷覆蓋層的座標,始終在盒子上。

(9)、獲取覆蓋層移動的最大距離,ar maskX=small.offsetWidth-mask.offsetWidth;   var maskY=small.offsetHeight-mask.offsetHeight; 並且判斷是否超出盒子的範圍。

(10)、顯示對應的大圖片、獲取大圖片最大的移動距離。

(11)var imgMaxX=big.children[0].offsetWidth-big.offsetWidth;

(12)var imgMaxY=big.children[0].offsetHeight-big.offsetHeight;

(13)var bigImgX=x*imgMaxX/maskX;

(14)var bigImgY=y*imgMaxY/maskY;

(15)big.children[0].style.left=-bigImgX+'px';

(16)big.children[0].style.top=-bigImgY+'px';

在瀏覽器上面的效果