Я пытаюсь создать систему меню Push/Slide Out на моем сайте, как, например, www.squarespace.com, однако я не знаю, как это сделать.
Мой сайт является сайтом Squarespace и использует html, json и less (вы также можете создавать файлы.js): splitblog.squarespace.com/
Мой файл site.region для навигации:
<squarespace:navigation navigationId="mainNav" template="navigation" />
Которая извлекает информацию из navigation.block, которая такова:
<nav id="main-navigation" class="main-navigation" data-content-field="navigation-mainNav">
<ul>
{.repeated section items}
<li class="{.section active} active-link{.end}{.if folderActive} active-folder{.end}">
{.folder?}
<!--FOLDER-->
<a href="{collection.fullUrl}">{collection.navigationTitle}</a>
<ul>
{.repeated section items}
<!--COLLECTION IN A FOLDER-->
{.collection?}
<li class="{.section active} active-link{.end}">
<a href="{collection.fullUrl}">
{collection.navigationTitle}
</a>
</li>
{.end}
<!--EXTERNAL LINK IN A FOLDER-->
{.section externalLink}
<li>
<a href="{url}"{.section newWindow} target="_blank"{.end}>
{title}
</a>
</li>
{.end}
{.end}
</ul>
{.or}
<!--COLLECTION-->
{.section collection}
<a href="{fullUrl}">{navigationTitle}</a>
{.end}
<!--EXTERNAL LINK-->
{.section externalLink}
<a href="{url}"{.section newWindow} target="_blank"{.end}>
{title}
</a>
{.end}
{.end}
</li>
{.end}
</ul>
</nav>
Тогда безлимитный стиль для меню:
.main-navigation {
ul {
padding-left: 0;
li {
display: inline-block;
ul {
display: none;
}
&:not(:last-child) {
margin-right: .5em;
}
&:hover > ul {
display: inline-block;
}
&.active-link > a {
color: salmon;
}
&.active-folder > a {
color: orange;
}
}
}
}
Любая помощь будет оценена по достоинству. Не стесняйтесь предлагать решения css и js. Благодарю!
Вот пример того, что я хочу использовать: codepen
Это может дать вам представление о том, как достичь этого.
http://thecodeplayer.com/walkthrough/off-canvas-menu-animated-links
Также в фундаменте есть меню offcanvas, в котором вы можете посмотреть и посмотреть, как они это создали.
Проверьте эту скрипку.
Это должно дать вам представление о том, как это может быть достигнуто.
$(document).on("click","#button", function(){
$('#div2').animate({ width:"20%" }, 200);
$('#div1').animate({width:"80%" }, 200);
});
$(document).on("click","#close", function(){
$('#div2').animate({visibility:"hidden" , width:"0%" }, 200);
$('#div1').animate({width:"100%" }, 200);
});
#div1
{
height:100%;
width:100%;
float:left;
position:fixed;
}
#div2
{
height:100%;
width:0%;
float:right;
}
#button
{
margin-top:20px;
margin-right:20px;
float:right;
}