Вертикальные вкладки JavaScript не работают должным образом - PullRequest
0 голосов
/ 08 июля 2019

Я реализовал вертикальные вкладки, но по какой-то причине он размножается по всему экрану. Я подозреваю, что загрузчик, но я не уверен.

https://www.w3schools.com/howto/howto_js_vertical_tabs.asp Вот где я получил код для вертикальных вкладок

Вот изображение проблемы: https://imgur.com/lqNlIAk (Ссылка на изображение не работает в любом случае) Попробовал изменить какой-то бутстрап безрезультатно.

<div style="padding-top:100px;padding-bottom:100px" class="container">
    <div class="row">
        <div class="col-md-3 ">
             <div class="list-group">
              <a id="defaultOpen" style="padding: .75rem 1.25rem;" href="openCity(event, 'Dashb')" class="tablinks list-group-item list-group-item-action btn">Account Dashboard</a>
              <a style="padding: .75rem 1.25rem;" href="openCity(event, 'Info')" class="tablinks list-group-item list-group-item-action btn">Account Information</a>
              <a style="padding: .75rem 1.25rem;" href="openCity(event, 'Adbook')" class="tablinks list-group-item list-group-item-action btn">Address Book</a>
              <a style="padding: .75rem 1.25rem;" href="openCity(event, 'Orders')" class="tablinks list-group-item list-group-item-action btn">My Orders</a>
              <a style="padding: .75rem 1.25rem;" href="openCity(event, 'Preview')" class="tablinks list-group-item list-group-item-action btn">My Product Reviews</a>
              <a style="padding: .75rem 1.25rem;" href="openCity(event, 'Newsl')" class="tablinks list-group-item list-group-item-action btn">NewsLetter</a>
              <a style="padding: .75rem 1.25rem;" href="openCity(event, 'Psub')" class="tablinks list-group-item list-group-item-action btn">My Product Subscribtions</a>
              <a style="padding: .75rem 1.25rem;" href="openCity(event, 'Creditc')" class="tablinks list-group-item list-group-item-action btn">My Credit Cards</a>
            </div> 
        </div>

<div class="col-md-9">
 <div id="Dashb" class="card tabcontent">
<div class="card-body">
 <div class="row">
 <div class="col-md-12">
                        </div>
                    </div>
                    <div class="row">
                        <div class="col-md-12">
                            <form>
                              <div class="form-group row">
                                <label for="username" class="col-4 col-form-label">User Name</label> 
                                <div class="col-8">
                                  <input id="username" name="username" placeholder="Username" class="form-control here" required="required" type="text">
                                </div>
                              </div>
                              <div class="form-group row">
                                <label for="name" class="col-4 col-form-label">First Name</label> 
                                <div class="col-8">
                                  <input id="name" name="name" placeholder="First Name" class="form-control here" type="text">
                                </div>
                              </div>
                              <div class="form-group row">
                                <label for="lastname" class="col-4 col-form-label">Last Name</label> 
                                <div class="col-8">
                                  <input id="lastname" name="lastname" placeholder="Last Name" class="form-control here" type="text">
                                </div>
                              </div>

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";
}

1 Ответ

0 голосов
/ 09 июля 2019

Есть фрагмент JavaScript, необходимый для того, чтобы скрыть вкладку для запуска и показать только первую вкладку. Это не в статье W3C, а на странице «попробуй»:

 document.getElementById("defaultOpen").click();

Вы должны поместить это в конец вашего JavaScript (вне функции).

Статья W3C могла бы быть более ясной об этом. Без этой строки все блоки tabcontent начинаются как видимые, как вы видите.

В качестве альтернативы, вы можете скрыть блоки tabcontent по умолчанию с помощью CSS и показать первый. Линия JS проще, но вы, вероятно, заметите небольшое мерцание при загрузке страницы, прежде чем она закроет вкладки для запуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...