#javascript #html #css
#javascript #HTML #css
Вопрос:
Я должен добавить гамбургер для мобильного просмотра кода моего веб-сайта.
Я пытался с помощью w3 school, но это не работает нормально.
Я поделюсь своим html и css-кодом. Я добавил значок гамбургера, просто нужно сделать его активным.
Должен ли я писать код в отдельном файле JavaScript или добавлять любой код здесь, в моем HTML?
Я попытался добавить гамбургер из свойств HTML CSS
HTML и CSS для заголовка мобильного представления:
.mobheader {
width: 80%;
height: auto;
margin: 0px auto;
display: flex;
align-items: center;
justify-content: space-between;
}
.hamburger {
font-size: 33px;
color: white;
float: left;
margin-top: 20px;
margin-bottom: 20px;
}
<div class="mobheader">
<div class="hamburger">
<i class="fas fa-bars"></i>
</div>
<div class="logo">
<h1>
<a href="#"><img src="img/logomob.png" alt="logo"></a>
</h1>
</div>
<div class="dots">
<i class="fas fa-search"></i>
</div>
</div>
Я хочу, чтобы этот гамбургер работал таким образом, чтобы он отображал 3 меню при нажатии
Комментарии:
1. используйте bootstrap. проверьте ссылку. w3schools.com/bootstrap/bootstrap_navbar.asp
2. Но мой руководитель проекта не принимает bootstrap только JavaScript
Ответ №1:
Я не могу комментировать, я не понимаю, в чем ваша проблема, потому что код, который вы уже опубликовали, работает, я просто изменил цвет и размер во фрагменте кода. Посмотрите, и если ваша проблема в другом, просто уточните, в чем ваша текущая проблема.
Редактировать
Я нахожу codepen и добавляю к фрагменту, чтобы показать вам, что вы хотели.
Источник: https://codepen.io/mranenko/pen/wevamj
(function() {
var hamburger = {
navToggle: document.querySelector('.nav-toggle'),
nav: document.querySelector('nav'),
doToggle: function(e) {
e.preventDefault();
this.navToggle.classList.toggle('expanded');
this.nav.classList.toggle('expanded');
}
};
hamburger.navToggle.addEventListener('click', function(e) {
hamburger.doToggle(e);
});
}());
/* imports */
@import url("https://fonts.googleapis.com/css?family=Source Sans Pro");
/* colors */
/* variables */
/* mixins */
/* resets and base styles */
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-text-size-adjust: 100%;
-moz-text-size-adjust: 100%;
-ms-text-size-adjust: 100%;
}
*:focus {
outline: none;
}
html {
background: #5634d1;
color: white;
font: normal 10px/1.42857 "Source Sans Pro", Helvetica, Arial, sans-serif;
}
body {
background: none;
color: inherit;
font: inherit;
}
a {
color: inherit;
cursor: pointer;
text-decoration: none;
}
a:hover {
opacity: 0.8;
}
/* nav toggle */
.nav-toggle {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
cursor: pointer;
height: 2rem;
left: 2rem;
position: fixed;
top: 2rem;
width: 3.6rem;
z-index: 2;
}
.nav-toggle:hover {
opacity: 0.8;
}
.nav-toggle .nav-toggle-bar,
.nav-toggle .nav-toggle-bar::after,
.nav-toggle .nav-toggle-bar::before {
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
-webkit-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
-ms-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
transition: all 0.5s ease;
background: white;
content: '';
height: 0.4rem;
width: 100%;
}
.nav-toggle .nav-toggle-bar {
margin-top: 0;
}
.nav-toggle .nav-toggle-bar::after {
margin-top: 0.8rem;
}
.nav-toggle .nav-toggle-bar::before {
margin-top: -0.8rem;
}
.nav-toggle.expanded .nav-toggle-bar {
background: transparent;
}
.nav-toggle.expanded .nav-toggle-bar::after,
.nav-toggle.expanded .nav-toggle-bar::before {
background: white;
margin-top: 0;
}
.nav-toggle.expanded .nav-toggle-bar::after {
-ms-transform: rotate(45deg);
-webkit-transform: rotate(45deg);
transform: rotate(45deg);
}
.nav-toggle.expanded .nav-toggle-bar::before {
-ms-transform: rotate(-45deg);
-webkit-transform: rotate(-45deg);
transform: rotate(-45deg);
}
/* nav */
.nav {
-webkit-transition: left 0.5s ease;
-moz-transition: left 0.5s ease;
-ms-transition: left 0.5s ease;
-o-transition: left 0.5s ease;
transition: left 0.5s ease;
background: #28dde0;
color: white;
cursor: pointer;
font-size: 2rem;
height: 100vh;
left: -20rem;
padding: 6rem 2rem 2rem 2rem;
position: fixed;
top: 0;
width: 20rem;
z-index: 1;
}
.nav.expanded {
left: 0;
}
.nav ul {
position: absolute;
top: 50%;
-webkit-transform: translateY(-50%);
-ms-transform: translateY(-50%);
transform: translateY(-50%);
list-style: none;
margin: 0;
padding: 0;
}
<div class="nav-toggle">
<div class="nav-toggle-bar"></div>
</div>
<nav class="nav">
<ul>
<li><a href="#">Portfolio</a></li>
<li><a href="#">Services</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
Комментарии:
1. Если это то, что вы хотели, отметьте ответ как правильный, пожалуйста. Надеюсь, это помогло вам 🙂 @KashifKhalid
2. Проблема в том, что я добавил гамбургер, но я не знаю, как его активировать. Как это начнет работать. Это просто веб-значок. Как заставить его работать так, чтобы при нажатии пользователем отображались некоторые ссылки или меню.
3. Вы используете только чистый HTML и JS? @KashifKhalid
4. Да, HTML, CSS и JavaScript
5. @KashifKhalid Вам нужно создать div содержимого меню, которое вы хотите показать, и показывать его, когда пользователь нажимает на гамбургер, вам нужно перехватить это действие с помощью JavaScript и изменить класс содержимого меню. Пример: codepen.io/mranenko/pen/wevamj
Ответ №2:
Предполагая, что гамбургер — это изображение:
<img src="img/hamburger.png" alt="hamburger"/>
Вам не нужны теги h1 для изображений, они предназначены для заголовков (т.Е. Текста)
Также помните «/», чтобы закрыть ваши теги img; у вашего логотипа их нет.
Комментарии:
1. Проблема в том, что я добавил гамбургер, но я не знаю, как его активировать. Как это начнет работать? Это просто веб-значок. Как заставить его работать так, чтобы при нажатии пользователем отображались некоторые ссылки или меню.
2. Сначала вам нужно будет добавить его либо в виде значка, либо изображения, чтобы он отображался на странице. Для отображения меню, как вы хотите, потребуется гораздо больше кодирования, и это не то, что мы можем объяснить здесь в нескольких предложениях. Я бы посоветовал сначала отобразить ваше изображение, а затем попытаться отсортировать ваше меню. Удачи!
3. <div class=»hamburger»> <i class=»fas fa-bars»></i> </div>
4. Извините, теперь я понимаю. «Гамбургер» — это значок с 3 полосами, на который вы ссылаетесь. Возможно, эта страница может помочь: w3schools.com/howto/howto_js_dropdown.asp