@deasmont

Как с hover переписать на клик?

Есть у меня некий сайдбар, при наведении на который он вылазит полностью. Хочу сделать чтобы вылазил при клике на кнопку (не на самом сайдбаре), прописал через js toggle, она работает но сайдбар появляется на долю секунд после чего тут же прячется. Подскажите пожалуйста где осекся
.no-list {
  list-style-type: none;
  padding: 0;
  margin: 0;
}
.no-list li {
  padding: 0;
  margin: 0;
}
.no-list li a {
  padding: 0;
  margin: 0;
  display: block;
}
aside.sidebar {
  position: fixed;
  left: 0;
  top: 0;
  height: 100%;
  background: #333;
  width: 50px;
  overflow: hidden;
    z-index: 1021;
  transition: all 0.5s;
}
aside.sidebar:hover {
  width: 200px;
}
aside.sidebar:hover ul.sb_top_lv li span {
  left: 50px;
  transition-delay: .318s;
  opacity: 1;
}
aside.sidebar ul.sb_top_lv {
  float: left;
  width: 100%;
}
aside.sidebar ul.sb_top_lv li {
  float: center;
  width: 100%;
  color: white;
  position: relative;
  padding: 10px 15px;
  text-align: left;
  transition: all 0.5s;
}
.active-bar {
  background-color: #ff900e;
}
aside.sidebar ul.sb_top_lv li:hover {
  cursor: pointer;
  background: #222;
}
aside.sidebar ul.sb_top_lv li.opened ul.sb_dropdown {
  height: 500px;
  opacity: 1;
  left: 0;
}
aside.sidebar ul.sb_top_lv li span {
  transition: all 0.2s;
  position: absolute;
  left: 60px;
  font-size: 12px;
  top: 12px;
  opacity: 0;
}
aside.sidebar ul.sb_top_lv li i {
  font-size: 18px;
}
aside.sidebar ul.sb_dropdown {
  transition: all 0.5s;
  position: relative;
  opacity: 0;
  top: 0;
  height: 0px;
  overflow: hidden;
  width: 200px;
  left: 25px;
}
aside.sidebar ul.sb_dropdown p {
  text-align: center;
}
aside.sidebar ul.sb_dropdown li a {
  color: white;
  font-size: 12px;
}
aside.sidebar ul.sb_dropdown li:hover {
  background-color: #111;
}
aside.sidebar ul.sb_dropdown li a:before {
  padding-right: 5px;
}

Ну и джс кнопки на всяк..
$(document).ready(function () {
    $('#sidebarCollapse').on('click', function () {
        $('.sidebar').toggleClass('active');
    });
});
  • Вопрос задан
  • 477 просмотров
Решения вопроса 1
mtvphnx
@mtvphnx
Двигаю пиксели, играюсь со шрифтами
Вот это место:
aside.sidebar:hover {
  width: 200px;
}

В том классе, который добавляешь jquery, есть что-то подобное? Ибо я его не вижу в коде, чтобы с классом active что-то навешивалось на sidebar.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@BarryHAllen
Везде
aside.sidebar:hover заменить на aside.sidebar.active
если я правильно понял вопрос, конечно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы