たまたまインターネットでTEDの公開講座【子供たちにプログラミングを教えよう】を見て、小さな男の子が作ったという例がありました。彼は小さな魚を食べるゲームのスコアボードを作りたかったので、オンラインでアドバイスを求めました。その後、ウェブサイトの作成者に発見されたとき、彼は答えを教えてくれました。変数。この少年は、この [変数] を通じて学んだ知識を決して忘れないかもしれません。
需要に応じてプログラミングを学習することは、多くの場合、プログラミングを学習するためにプログラミングを学習するよりも手間がかかり、価値があることがわかります。これは、その後の私の勉強と執筆にも変化をもたらしました。
追伸: 以下のコードは変更部分のみを毎回記述し、変更していない部分については再度記述しません。各パートの形式は、レンダリング - アイデア - コード です。その目的は、初心者がレンダリングに基づいて自分でコードを作成し、アイデアを補足して、最終的に作者の By とコミュニケーションできるようにすることです。コードを比較することで、この方法を通じて、効果を達成するためのさまざまな方法があることを理解できればと思います。もちろん、最も重要なことは、コードを書く能力を発揮することです。
タスク目標_1
タスク目標_2
これは CSS を変更していない HTML コードです
3
順序なしリスト: < ul>、
<ul class="nav" > <li><a href="#">首 页</a></li> <li><a href="#">新闻快讯</a></li> <li><a href="#">产品展示</a></li> <li><a href="#">售后服务</a></li> <li><a href="#">联系我们</a></li> </ul>
これはナビゲーション バーのデフォルトのスタイルです。css を使用して予備的な変更を行います
4
デフォルトのブラウザボックスのモデル値、リストスタイル、リンクスタイルをキャンセルし、フォントの色を黒に変更します。
*{margin: 0;padding: 0; font-size: 14px;} li{list-style: none;} a{text-decoration: none; color: #000;}
5
li{list-style: none;float:left;}li a{display:block;width: 100px; height: 30px;line-height: 30px; text-aligin:center; }
6
li a{display:block;width: 100px; height: 30px;line-height: 30px; background-color: #efefef; margin-left:1px;}.on,.nav li a:hover{ background-color: #f60; color: #fff;}
7
1. ナビゲーションバーの「足元」を作成します。
ul{height:50px; border-bottom:5px solid #f60; padding-left:20px;}li{margin-top:20px;}
これはテキスト ファイルから分離されているため、デフォルトの高さの値はその親要素も 0 なので、自分で設定する必要があります。 定義済み。 3. ナビゲーション バーの主要部分を margin 属性とpadding 属性に移動します。
.on,.nav li a:hover{ height: 40px; line-height: 40px; margin-top: -10px;}
8
マウスオーバー後の行の高さを設定します 2 .Atこの時点で、マージンを負の値に設定すると、ナビゲーション バーが下に移動していることがわかります。
上記は CSS 部分です。以下では JavaScript について説明します。
マウスオーバー時の自動拡大・縮小自動拡大・自動縮小の2つに分けて記述します<🎜> <🎜>マウスオーバー時の自動拡大・縮小<🎜 > <🎜> <🎜> 9 < 🎜> <🎜> <🎜> 効果: ナビゲーション バーの上にマウスを移動すると、ナビゲーション バーが自動的に拡張されます。 <🎜>
window.onload=function(){ var aA=document.getElementsByTagName("a"); for(var i=0;i<aA.length;i++){ aA[i].onmouseover=function(){ var This=this; clearInterval(This.time);//初始化 This.time=setInterval(function(){ This.style.width=This.offsetWidth+8+"px"; if(This.offsetWidth>=150){ clearInterval(This.time) } },30); } } }
最终图片,与文章开头图片相同效果:鼠标离开导航栏自动缩到原始状态。
aA[i].onmouseout=function(){ var This = this; clearInterval(This.time);//初始化 This.time=setInterval(function(){ This.style.width=This.offsetWidth-8+"px"; if(This.offsetWidth<=100){ clearInterval(This.time); } },30); }}
<!DOCTYPE html><html><head> <meta http-equiv="Content-Type" content="text/html" charset="UTF-8"> <title>导航栏v1.0</title> <style type="text/css"> /*@group general style*/ *{margin: 0;padding: 0;font-size: 14px;} a{color: #333;text-decoration: none;} ul{ list-style: none;border-bottom: 5px solid #f60;height: 50px; padding-left: 30px; } li{ margin-top:20px; float: left;} /*@group overrides*/ .nav li a{ display: block; text-align: center; height: 30px; line-height:30px; width: 120px; background-color: #efefef; border-radius: 5px; } .nav .on,.nav li a:hover{ color: #fff; background-color: #f60; height: 40px; line-height: 40px; margin-top: -10px; } </style></head><body> <ul class="nav" > <li><a class="on" href="#">首 页</a></li> <li><a href="#">新闻快讯</a></li> <li><a href="#">产品展示</a></li> <li><a href="#">售后服务</a></li> <li><a href="#">联系我们</a></li> </ul> <script type="text/javascript"> window.onload=function(){ var aA=document.getElementsByTagName("a"); for(var i=0;i<aA.length;i++){ aA[i].onmouseover=function(){ // 设置方法停止的时机 clearInterval(this.time); // 此处this为当前a标签 var This=this; // 设置方法每30毫秒运行一次 // 其中offsetWidth:对象的可见宽度,包括本身width+padding-border // 当offsetWidth>=120时,程序停止。 This.time=setInterval(function(){ This.style.width=This.offsetWidth+8+"px"; if(This.offsetWidth>=160){ clearInterval(This.time); } },30); } aA[i].onmouseout=function(){ clearInterval(this.time);//初始清理 var This=this; This.time=setInterval(function(){ This.style.width=This.offsetWidth-8+"px"; if(This.offsetWidth<=120){ clearInterval(This.time); } },30); } } } </script></body></html>
注:此项目灵感来自慕课网