Created
December 8, 2016 07:20
-
-
Save theanhdo94/8e766383a1e26a209cf6283fde3ed637 to your computer and use it in GitHub Desktop.
Create simple tabs/tooltips within smooth animation using basic HTML, CSS, JS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // #Step 1: HTML structure | |
| <ul class="tab"> | |
| <li><a href="javascript:void(0)" class="tablinks" onclick="openCity(event, 'London')">London</a></li> | |
| <li><a href="javascript:void(0)" class="tablinks" onclick="openCity(event, 'Paris')">Paris</a></li> | |
| <li><a href="javascript:void(0)" class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</a></li> | |
| </ul> | |
| <div id="London" class="tabcontent"> | |
| <h3>London</h3> | |
| <p>London is the capital city of England.</p> | |
| </div> | |
| <div id="Paris" class="tabcontent"> | |
| <h3>Paris</h3> | |
| <p>Paris is the capital of France.</p> | |
| </div> | |
| <div id="Tokyo" class="tabcontent"> | |
| <h3>Tokyo</h3> | |
| <p>Tokyo is the capital of Japan.</p> | |
| </div> | |
| // #Step 2: CSS Structure | |
| <style type="text/css"> | |
| /* Style the list */ | |
| ul.tab { | |
| list-style-type: none; | |
| margin: 0; | |
| padding: 0; | |
| overflow: hidden; | |
| border: 1px solid #ccc; | |
| background-color: #f1f1f1; | |
| } | |
| /* Float the list items side by side */ | |
| ul.tab li {float: left;} | |
| /* Style the links inside the list items */ | |
| ul.tab li a { | |
| display: inline-block; | |
| color: black; | |
| text-align: center; | |
| padding: 14px 16px; | |
| text-decoration: none; | |
| transition: 0.3s; | |
| font-size: 17px; | |
| } | |
| /* Change background color of links on hover */ | |
| ul.tab li a:hover {background-color: #ddd;} | |
| /* Create an active/current tablink class */ | |
| ul.tab li a:focus, .active {background-color: #ccc;} | |
| /* Style the tab content */ | |
| .tabcontent { | |
| display: none; | |
| padding: 6px 12px; | |
| border: 1px solid #ccc; | |
| border-top: none; | |
| } | |
| </style> | |
| // #Step 3: Javascript Structure | |
| <script type="text/javascript"> | |
| function openCity(evt, cityName) { | |
| // Declare all variables | |
| var i, tabcontent, tablinks; | |
| // Get all elements with class="tabcontent" and hide them | |
| tabcontent = document.getElementsByClassName("tabcontent"); | |
| for (i = 0; i < tabcontent.length; i++) { | |
| tabcontent[i].style.display = "none"; | |
| } | |
| // Get all elements with class="tablinks" and remove the class "active" | |
| tablinks = document.getElementsByClassName("tablinks"); | |
| for (i = 0; i < tablinks.length; i++) { | |
| tablinks[i].className = tablinks[i].className.replace(" active", ""); | |
| } | |
| // Show the current tab, and add an "active" class to the link that opened the tab | |
| document.getElementById(cityName).style.display = "block"; | |
| evt.currentTarget.className += " active"; | |
| } | |
| </script> | |
| /** Optional Callback function **/ | |
| // #1, ADD ANIMATION FADED in tab transition. Please add these css line: | |
| .tabcontent { | |
| -webkit-animation: fadeEffect 1s; | |
| animation: fadeEffect 1s; /* Fading effect takes 1 second */ | |
| } | |
| @-webkit-keyframes fadeEffect { | |
| from {opacity: 0;} | |
| to {opacity: 1;} | |
| } | |
| @keyframes fadeEffect { | |
| from {opacity: 0;} | |
| to {opacity: 1;} | |
| } | |
| // #2, Shown a tab by default on page load. Add an id and stick it with click() function on page load: | |
| <a href="javascript:void(0)" class="tablinks" onclick="openCity(event, 'London')" id="defaultOpen">London</a> | |
| <script> | |
| // Get the element with id="defaultOpen" and click on it | |
| document.getElementById("defaultOpen").click(); | |
| </script> | |
| // #3, Add a Close button to the tab content: | |
| <!-- Click on the <span> element to close the tab --> | |
| <div id="London" class="tabcontent"> | |
| <h3>London</h3> | |
| <p>London is the capital city of England.</p> | |
| <span onclick="this.parentElement.style.display='none'">x</span> | |
| </div> | |
| /** COPYRIGHTS **/ | |
| Thank to w3school.com! I was followed this: http://www.w3schools.com/howto/howto_js_tabs.asp | |
| I just noted this snippet to my own notes for me easy to search. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment