JavaScript を使用してタブ切り替えを実装する 2 つの例
この記事では、主にタブ切り替えを実装する JavaScript の 2 つの例を紹介します。これは、前の方法の原理をさらに拡張したものです。詳細な理解が必要な学生は、それを参照してください。
前回の記事「JavaScript を実装する 4 つの方法」タブ切り替え」 タブ切り替えの 4 つの異なる実装原則を学習したので、次は理論と実践を結び付けます。いくつかの例を次に示します。
1. 「中国人民大学」の公式ウェブサイトのタブ切り替えを模倣します。 レンダリングは次のとおりです:
マウスをニュースに移動したときの効果。
マウス アナウンスにマウスを移動したときの効果
マウスをコミュニケーションに移動したときの効果
学術、コミュニケーション、スタイルの内容は書いていません。完全なコードは次のとおりです。
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style> *{ padding: 0; margin: 0; } body{ font-family: Arial,Verdana,sans-serif,"宋体"; } li{ list-style: none; float:left; } a{ text-decoration: none; color: #ffeec6; } #tanContainer{ height: 210px; width: 470px; background: url(homeinfo-trans-bg.png); overflow: hidden; color: #ffeec6; } #tanContainer li a{ height: 25px; display: inline-block; margin-left: 18px; font-size: 12px; padding-top: 12px; margin-bottom: 15px; } ul li a.fli { } #tabOne{ width: 122px; opacity: 0; } #tabTwo{ padding-left: 102px; } #tabCon { clear: both; } #tabCon p a{ color: #FFF2D5; } p p p{ font-size: 12px; margin: 10px 0 0 20px; width: 440px; } #bigPara{ font-size: 16px; color: #FFF2D5; border-bottom: 1px dotted #FFF2D5; padding-bottom: 5px; } #tabCon p { display:none; } #tabCon p.fp { display:block; } </style> </head> <body> <p id="tanContainer"> <p id="tab"> <ul> <li><a class="fli" href="#" id="tabOne">新闻</a></li> <li><a href="#" id="tabTwo">公告</a></li> <li><a href="#">学术</a></li> <li><a href="#">交流</a></li> <li><a href="#">文体</a></li> </ul> </p> <p id="tabCon"> <p class="fp"> <p id="bigPara"><a href="#">塞浦路斯总统尼科斯·阿纳斯塔西亚迪斯到访人民大学 获...</a></p> <p><a href="#" title="中国人民大学开展专题教育 弘扬焦裕禄精神 践行“三严三实”(2015-10-25)">中国人民大学开展专题教育 弘扬焦裕禄精神 践行“三严三实”(2015-10-25)</a></p> <p><a href="#">中国人民大学认真落实党风廉政建设主体责任和监督责任(2015-10-23)</a></p> <p><a href="#">中国人民大学第四届体育文化节开幕 2015年新生运动会举行(2015-10-18)</a></p> <p><a href="#">中国人民大学“一带一路”经济研究院首席顾问聘任仪式举行 土库曼斯坦驻华大使拉</a></p> </p> <p> <p><a>2015-2016学年第一学期第8周校领导接待日安排...(2015-10-22)</a></p> <p><a>关于举办中国人民大学第二届青年管理干部岗位技能竞赛的...(2015-09-30)</a></p> <p><a>我校第十六门中国大学视频公开课上线,请大家积极关注...(2015-10-26)</a></p> <p><a>关于组织我校青年教师参观鲁迅博物馆社会实践活动的通知...(2015-10-23)</a></p> <p><a>关于举办中国人民大学第四届教工羽毛球“1+1”团体联...(2015-10-23)</a></p> <p><a>中国人民大学MOOCs课程录制演播厅设备购置项目中标...(2015-10-23)</a></p> </p> <p>内容三</p> <p>内容四</p> <p>内容五</p> </p> </p> </body> <script> var tabs=document.getElementById("tab").getElementsByTagName("li"); var ps=document.getElementById("tabCon").getElementsByTagName("p"); for(var i=0;i<tabs.length;i++){ tabs[i].onmouseover=function(){change(this);} } function change(obj){ for(var i=0;i<tabs.length;i++){ if(tabs[i]==obj){ tabs[i].className="fli"; ps[i].className="fp"; if(i==0){ document.getElementById("tanContainer").style.backgroundPosition="0 0" }else{ document.getElementById("tanContainer").style.backgroundPosition="0 -210px" } }else{ tabs[i].className=""; ps[i].className=""; } } } </script> </html>
この例は、非常にシンプルで一般的なタブ切り替えです。js の追加点は、背景画像の位置を変更することであり、残りは単純なスタイルです。
2. input:checked を使用してタブ切り替え効果を実現します。次に、この原則と CSS3 を使用して、切り替え時にコンテンツ領域が徐々に表示されます。レンダリングは次のとおりです:HTML/CSS をクリックしたときの効果
マウスが AJAX をクリックしたときの効果
コード全体です
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>input:checked实现tab切换</title> <style> .tabs{ color: #FFF; font-family: "微软雅黑"; } input{ opacity: 0;/*隐藏input的选择框*/ } input:checked+label{ padding-bottom: 6px; font-weight: bold; } label{ cursor: pointer;/*鼠标移上去变成手状*/ float: left; width: 120px; line-height: 40px; margin-right: 5px; text-align: center; } .tabs label:nth-of-type(1){ background: #5eb0de; } .tabs label:nth-of-type(2){ background: #86cad7; } .tabs label:nth-of-type(3){ background: #e9bab3; } .tabs label:nth-of-type(4){ background: #a8c194; } label:hover{ font-weight: bold; } /*选择前面有.tabs input:nth-of-type(x):checked的.panels .panel:nth-child(x)*/ .tabs input:nth-of-type(1):checked~.panels .panel:nth-child(1){ opacity: 1; background: #5eb0de; -webkit-transition: .3s; } .tabs input:nth-of-type(2):checked~.panels .panel:nth-child(2){ opacity: 1; background: #86cad7; -webkit-transition: .3s; } .tabs input:nth-of-type(3):checked~.panels .panel:nth-child(3){ opacity: 1; background: #e9bab3; -webkit-transition: .3s; } .tabs input:nth-of-type(4):checked~.panels .panel:nth-child(4){ opacity: 1; background: #a8c194; -webkit-transition: .3s; } .panel{ opacity: 0; position: absolute;/*使内容区域位置一样*/ height: 200px; width: 455px; margin-top: 25px; padding: 0 20px; } </style> </head> <body> <p class="tabs"> <input checked id="one" name="tabs" type="radio"> <label for="one">HTML/CSS</label> <input id="two" name="tabs" type="radio"> <label for="two">JavaScript</label> <input id="three" name="tabs" type="radio"> <label for="three">AJAX</label> <input id="four" name="tabs" type="radio"> <label for="four">Sever Side</label> <p class="panels"> <p class="panel"> <h2 id="HTML文本标签语言">HTML文本标签语言</h2> <p>HTML 是通向 WEB 技术世界的钥匙。HTML 非常容易学习!你会喜欢它的!</p> </p> <p class="panel"> <h2 id="JavaScript脚本语言">JavaScript脚本语言</h2> <p>JavaScript 是世界上最流行的脚本语言。<br/> JavaScript 是属于 web 的语言,它适用于PC、笔记本电脑、平板电脑和移动电话。<br/> JavaScript 被设计为向 HTML 页面增加交互性。 </p> </p> <p class="panel"> <h2 id="AJAX阿贾克斯">AJAX阿贾克斯</h2> <p>AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。<br/> AJAX 不是新的编程语言,而是一种使用现有标准的新方法。<br/> AJAX 是与服务器交换数据并更新部分网页的艺术,在不重新加载整个页面的情况下。 </p> </p> <p class="panel"> <h2 id="Sever-nbsp-Side服务器脚本">Sever Side服务器脚本</h2> <p>SQL 是用于访问和处理数据库的标准的计算机语言。<br/> ASP 是创建动态交互性网页的强大工具。<br/> ADO 指 ActiveX 数据对象(ActiveX Data Objects)。<br/> PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。<br/> VBScript 是微软公司出品的脚本语言。 </p> </p> </p> </p> </body> </html>
JavaScript を使用したタブ切り替えの 2 つの例に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptを学ぶことは難しくありませんが、挑戦的です。 1)変数、データ型、関数などの基本概念を理解します。2)非同期プログラミングをマスターし、イベントループを通じて実装します。 3)DOM操作を使用し、非同期リクエストを処理することを約束します。 4)一般的な間違いを避け、デバッグテクニックを使用します。 5)パフォーマンスを最適化し、ベストプラクティスに従ってください。

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...

Console.log出力の違いの根本原因に関する詳細な議論。この記事では、Console.log関数の出力結果の違いをコードの一部で分析し、その背後にある理由を説明します。 �...
