Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Переключение div-а с помощю таб-а без js (https://javascript.ru/forum/css-html/82452-pereklyuchenie-div-s-pomoshhyu-tab-bez-js.html)

fori 09.05.2021 20:19

Переключение div-а с помощю таб-а без js
 
Здравствуйте, если 2 раза нажат таб window1 скроется и будет отображатся window2? Почему ето приисходит и как ето исправить
<!DOCTYPE html>

<body>
  <div class="body">
    <div>
      <button>Window1</button>
    </div>
    <div>
      <button>Window2</button>
    </div>
  </div>

</body>
<style>
  .body {
    display: flex;
    flex-direction: row;

    width: 100%;
    position: relative;
    overflow: hidden;
  }

  .body>div {
    display: flex;
    flex-direction: column;
    flex-shrink: 0;

    width: 100%;
  }
</style>

</html>

рони 09.05.2021 20:39

fori,
в каком браузере?

voraa 09.05.2021 20:57

Что именно исправить?
Что должно получиться?

По первому tab фокус передается на Window1, по второму на Window2 и он сдвигается в поле зрения. Но т.к у вас стоит overflow: hidden, то вы не видите , что Window1 не "пропал", а просто сдвинулся влево.

fori 10.05.2021 16:35

Вложений: 1
Я упростил код до такого
<!DOCTYPE html>

<body>
  <div class="frame">
    <div class="body">
      <div class="page0">
        <button>111111111111111111111</button>
      </div>
      <div class=" page1">
        <button>2222222222222222222222222</button>
      </div>
    </div>
  </div>

  <style>
    .frame {
      background: red;
    }

    .frame .body {
      width: 100%;
      position: relative;
      overflow: hidden;
      height: 5vmin;
    }

    .frame .body>div {
      width: 100%;
      position: absolute;
    }

    .page0 {
      left: 0;
      opacity:1;
    }

    .page1 {
      left: 100%;
      opacity:0;
    }
  </style>

</body>

</html>

Я хочу чтоб одно окно (на котором могут быть кнопки и тд) могло быть в стороне с нулевой видимостю, о одно отображалось. Вызывая событие я хочу иметь возможность програмно сдвигать окна и изменять прозрачность и ето работает, но нажатие табов ломает все

рони 10.05.2021 17:00

Цитата:

Сообщение от fori
но нажатие табов ломает все

так отключите

fori 10.05.2021 17:09

Вы имеете ввиду поставить tabindex="-1" всем childNodes что в диве-окне?
Или есть другие испособы?

рони 10.05.2021 17:15

Цитата:

Сообщение от fori
поставить tabindex="-1"

да либо отменить событие по таб программно

рони 10.05.2021 17:24

fori,
document.addEventListener( "keydown" , function(event) {
let {target, code} = event;
if(target = target.closest(".body") && code == "Tab") event.preventDefault();
});

fori 10.05.2021 19:06

Спасибо, могу ли я каким-то образом узнать цель таб-а — тоесть если цель таба принадлежит компоненту - тогда e.preventDefault()

рони 10.05.2021 19:08

fori,
не понимаю.


Часовой пояс GMT +3, время: 08:10.