2016-05-14 2 views
0

W3Schools - Fade in tabJavascript, закрытие вкладки

Я использую этот код. Например, когда я нажимаю «Лондон», открывается новый вкладка. Но это не закрытие. Я хочу закрыть его, поэтому я добавил кнопку закрытия в главном div. Но я не мог написать этот сценарий. Что делать с закрытием tabcontent?

+2

Если вы показать нам, что вы уже пробовали, что было бы полезно. – sheeldotme

+0

Если вы хотите, чтобы ваши пользователи закрывали вкладку после ее выбора, вы можете захотеть вместо этого использовать интерфейс аккордеона. Поскольку вы уже используете Javascript, рассмотрите параметры пользовательского интерфейса аккордеона jQuery: https://jqueryui.com/accordion/. –

ответ

0

Я сделал скрипку с тем, что вы ищете. Here

<h3>Fade in Tabs</h3> 

<ul class="tab"> 
    <li><a href="#" class="tablinks" onclick="openCity(event,  'London')">London</a></li> 
    <li><a href="#" class="tablinks" onclick="openCity(event, 'Paris')">Paris</a></li> 
    <li><a href="#" class="tablinks" onclick="openCity(event, 'Tokyo')">Tokyo</a></li> 
    <li><a href="#" class='tablinks' onclick='hideText()'>Hide</a></li> 

<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> 

<script> 
function openCity(evt, cityName) { 
    var i, tabcontent, tablinks; 
    tabcontent = document.getElementsByClassName("tabcontent"); 
    for (i = 0; i < tabcontent.length; i++) { 
    tabcontent[i].style.display = "none"; 
    } 
    tablinks = document.getElementsByClassName("tablinks"); 
    for (i = 0; i < tabcontent.length; i++) { 
    tablinks[i].className = tablinks[i].className.replace(" active", ""); 
    } 
    document.getElementById(cityName).style.display = "block"; 
    evt.currentTarget.className += " active"; 
} 

function hideText() { 
    var i, tabcontent, tablinks; 
    tabcontent = document.getElementsByClassName("tabcontent"); 
    for (i = 0; i < tabcontent.length; i++) { 
    tabcontent[i].style.display = "none"; 
    } 
} 
</script> 
+0

Не думайте, что вы поняли, что функции уже есть, но я просто переместил код в отдельную функцию и добавил кнопку, чтобы скрыть то, что было показано в данный момент, и удалил любые активные классы. – Popatop15

+0

Код работает. Я благодарен тебе. Спасибо за все –

Смежные вопросы