2016-12-22 5 views
0

У меня есть меню «гамбургер», которое фиксируется на всей странице.
Если щелкнуть «гамбургер», меню открывается с левой стороны до 50% ширины страницы.Позиция абсолютная в фиксированной позиции

Значок «гамбургер» сместился вправо с помощью меню. Я хочу, чтобы значок скользил по абсолютному праву страницы.

Поскольку страница может иметь разную ширину (100%), я не могу установить width в px.

jQuery(document).ready(function($) { 
 
    $('a#click-a').click(function() { 
 
    $('.hoofdmenu').toggleClass('nav-view'); 
 
    }); 
 

 
});
.hamburger { 
 
    display: block; 
 
    position: absolute; 
 
    top: -7px; 
 
    left: 300px; 
 
} 
 
.hoofdmenu { 
 
    position: fixed; 
 
    left: 0; 
 
    top: 0px; 
 
    width: 50%; 
 
    height: 100%; 
 
    background-color: #333; 
 
    transform: translateX(-100%); 
 
    transition: transform 0.3s ease-in-out; 
 
    z-index: 9999; 
 
} 
 
.nav-view { 
 
    transform: translateX(0); 
 
} 
 
.nav-view div.hamburger { 
 
    left: 330px; 
 
} 
 
.hoofdmenu ul { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.hoofdmenu ul li { 
 
    margin: 0; 
 
    padding: 0; 
 
    list-style-type: none; 
 
} 
 
.hoofdmenu ul li a { 
 
    color: #fff; 
 
    display: block; 
 
    padding: 10px; 
 
    border-bottom: solid 1px rgba(255, 255, 255, 0.4); 
 
    text-decoration: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="hoofdmenu"> 
 
    <div class="hamburger"> 
 
    <a href="#" id="click-a"> 
 
     <img width="80" height="80" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Hamburger_icon.svg/220px-Hamburger_icon.svg.png"> 
 
    </a> 
 
    </div> 
 
    <a href="#" style="color:#FFF;">Link</a> 
 
</div>

Может кто-нибудь сказать мне, как это исправить?

+1

«ошибка, JQuery не определен ...» - в левой части экрана jsFiddle вам нужно добавить ссылку на JQuery как «Внешние ресурсы» – Banzay

+0

Ого. Ребята Thnx для исправления JSFiddle. Теперь проблема понятна для u :) – Interactive

+0

Что? Ты хочешь сказать, что проблема ушла? Или мы можем увидеть проблему в демо-коде? Я переместил ваш примерный код в строку, чтобы мы могли видеть его, не перескакивая на другой сайт. –

ответ

1

Я не уверен, что вы хотите, но, возможно, блок vw помогает вам

.nav-view div.hamburger { 
    left: 85vw; 
} 

С этим гамбургер должен быть alignt справа при открытии меню.

jQuery(document).ready(function($) { 
 
    $('a#click-a').click(function() { 
 
    $('.hoofdmenu').toggleClass('nav-view'); 
 
    }); 
 
});
.hamburger { 
 
    display: block; 
 
    position: absolute; 
 
    top: -7px; 
 
    left: 300px; 
 
} 
 
.hoofdmenu { 
 
    position: fixed; 
 
    left: 0; 
 
    top: 0px; 
 
    width: 50%; 
 
    height: 100%; 
 
    background-color: #333; 
 
    transform: translateX(-100%); 
 
    transition: transform 0.3s ease-in-out; 
 
    z-index: 9999; 
 
} 
 
.nav-view { 
 
    transform: translateX(0); 
 
} 
 
.nav-view div.hamburger { 
 
    left: 85vw; 
 
} 
 
.hoofdmenu ul { 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
.hoofdmenu ul li { 
 
    margin: 0; 
 
    padding: 0; 
 
    list-style-type: none; 
 
} 
 
.hoofdmenu ul li a { 
 
    color: #fff; 
 
    display: block; 
 
    padding: 10px; 
 
    border-bottom: solid 1px rgba(255, 255, 255, 0.4); 
 
    text-decoration: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="hoofdmenu"> 
 
    <div class="hamburger"> 
 
    <a href="#" id="click-a"> 
 
     <img width="80" height="80" src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Hamburger_icon.svg/220px-Hamburger_icon.svg.png"> 
 
    </a> 
 
    </div> 
 
    <a href="#" style="color:#FFF;">Link</a> 
 
</div>

+0

Awesome. Это сделал трюк. Я использую это для размеров шрифтов, но не знал, что могу использовать это для ширины и высоты! – Interactive

+0

Уверен, что это блок на основе размера экрана, поэтому вы можете использовать его для этого. Итак, чтобы решить вашу проблему? – theoretisch

+1

Да. Отлично, это было простое решение! – Interactive

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