JavaScript 入門練習2:鼠標移入移出改變 div 大小


有一個位於屏幕正中央的紅色 div 正方形盒子,寬高為200×200像素,鼠標移入(懸停),正方形會變成400×400像素,鼠標移出,正方形恢復200×200像素。

使用 CSS3、JavaScript 兩種方式實現。

效果如下圖:

用到的知識點:

  1、讓盒子居中會用到 margin、padding。

  2、 :hover 偽類選擇器。一個標簽后面有一個冒號,又跟着一個東西這樣的寫法就叫做偽類。

    :hover 屬於錨偽類,錨偽類分為:(以 a 標簽為例)

    a:link {color: #FF0000}          未訪問的鏈接

    a:visited {color: #00FF00}     已訪問的鏈接

    a:hover {color: #FF00FF}         鼠標移動到鏈接上

    a:active {color: #0000FF}    選定的鏈接

        通過以上四句代碼可以控制在點擊 a 標簽點擊前后實現的效果。

    對於 IE6 瀏覽器來說,它支持對 a 標簽設置偽類,但是其他標簽如果設置偽類,比如我們下面的代碼里面的 div:hover ,IE6 就無法顯示。如果需要讓 IE6 顯示 div:hover 的效果,是需要使用 JavaScript 來實現的。

  2、有些 HTML 標簽有默認的 margin、padding 值,需要在樣式表中手動把這些值清零,否則可能會影響我們的排布效果

  3、標簽=元素

  4、定位分為相對定位和絕對定位,相對定位是 relative,絕對定位是 absolute。我們這里使用絕對定位。關於定位的知識以后在用到的時候會再詳細說明。

 

代碼如下:

1、使用 CSS3 實現

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
 6 <meta name="apple-mobile-web-app-capable" content="yes">
 7 <meta name="apple-mobile-web-app-status-bar-style" content="black">
 8 <title></title>
 9 <style>
10 *{ margin:0; padding:0; }
11 div{ width:200px; height:200px; background:red; position:absolute; left:50%; top:50%; margin:-100px 0 0 -100px; }
12 
13 div:hover{ width:400px; height:400px; margin:-200px 0 0 -200px; }
14 </style>
15 <script>
16 
17 </script>
18 </head>
19 
20 <body>
21     <div></div>
22 </body>
23 </html>

 

2、使用 JavaScript 實現

 1 <!doctype html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
 6 <meta name="apple-mobile-web-app-capable" content="yes">
 7 <meta name="apple-mobile-web-app-status-bar-style" content="black">
 8 <title></title>
 9 <style>
10 *{ margin:0; padding:0; }
11 div{ width:200px; height:200px; background:red; position:absolute; left:50%; top:50%; margin-left:-100px; margin-top:-100px; }
12 
13 </style>
14 <script>
15 window.onload=function (){
16     var oBox=document.getElementById('box');
17     
18     oBox.onmouseover=function (){
19         oBox.style.width='400px';
20         oBox.style.height='400px';
21         oBox.style.marginLeft='-200px';
22         oBox.style.marginTop='-200px';
23     };
24     oBox.onmouseout=function (){
25         oBox.style.width='200px';
26         oBox.style.height='200px';
27         oBox.style.marginLeft='-100px';
28         oBox.style.marginTop='-100px';
29     };
30 };
31 </script>
32 </head>
33 
34 <body>
35     <div id="box"></div>
36 </body>
37 </html>

這里的 marginLeft、marginTop 可以寫在同一行,鼠標移入可以使用 oBox.style.margin='-200px 0 0 -200px'; ,鼠標移出可以使用 oBox.style.margin='-100px 0 0 -100px'; 。

單引號里面的值分別表示上、右、下、左四個方位對應的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM