Javascript 移动设备上的Bootstrap 3滑入菜单动画方向
按下切换图标(“汉堡图标”)时,如何更改导航菜单方向的默认幻灯片 我想实现一个类似于www.shopify.com在他们网站的移动版上使用的效果:(这里是一个简短的视频演示,介绍我试图实现的目标)Javascript 移动设备上的Bootstrap 3滑入菜单动画方向,javascript,jquery,html,css,twitter-bootstrap,Javascript,Jquery,Html,Css,Twitter Bootstrap,按下切换图标(“汉堡图标”)时,如何更改导航菜单方向的默认幻灯片 我想实现一个类似于www.shopify.com在他们网站的移动版上使用的效果:(这里是一个简短的视频演示,介绍我试图实现的目标) 提前非常感谢。以下是打造这种风格的方法 JS 我已经重新更新了演示,你想要的效果我已经得到了你之前发布的方式 以下是构建这种风格的方法 JS 我已经重新更新了演示,你想要的效果我已经得到了你之前发布的方式 这是你的小提琴 如果您花费更多的时间,代码可以优化到最少的行数 <div class="n
提前非常感谢。以下是打造这种风格的方法 JS 我已经重新更新了演示,你想要的效果我已经得到了你之前发布的方式
以下是构建这种风格的方法 JS 我已经重新更新了演示,你想要的效果我已经得到了你之前发布的方式 这是你的小提琴 如果您花费更多的时间,代码可以优化到最少的行数
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation" id="slide-nav">
<div class="container">
<div class="navbar-header">
<a class="navbar-toggle"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="navbar-brand" href="#">Project name</a>
</div>
<div id="slidemenu">
<a class="close">X</a>
<ul class="nav navbar-nav">
<li class="active">
<a href="#">Menu</a>
</li>
<li>
<a href="#">Menu</a>
</li>
<li>
<a href="#">Menu</a>
</li>
</ul>
</div>
</div>
</div>
<div id="page-content">
<div class="container">
<h1 class="no-margin-top">Left Sidebar menu</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid sunt minus libero quas soluta blanditiis voluptatibus, eveniet sint tempora! Maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad laudantium deleniti ratione ea voluptas, dolore expedita nisi? Veniam, doloremque, reiciendis.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci blanditiis nam esse molestiae voluptatem maiores fugiat nulla commodi magni impedit.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora ducimus iure ipsa ea officia aliquid quibusdam nostrum obcaecati itaque temporibus!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid sunt minus libero quas soluta blanditiis voluptatibus, eveniet sint tempora! Maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad laudantium deleniti ratione ea voluptas, dolore expedita nisi? Veniam, doloremque, reiciendis.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci blanditiis nam esse molestiae voluptatem maiores fugiat nulla commodi magni impedit.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora ducimus iure ipsa ea officia aliquid quibusdam nostrum obcaecati itaque temporibus!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid sunt minus libero quas soluta blanditiis voluptatibus, eveniet sint tempora! Maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad laudantium deleniti ratione ea voluptas, dolore expedita nisi? Veniam, doloremque, reiciendis.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci blanditiis nam esse molestiae voluptatem maiores fugiat nulla commodi magni impedit.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora ducimus iure ipsa ea officia aliquid quibusdam nostrum obcaecati itaque temporibus!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid sunt minus libero quas soluta blanditiis voluptatibus, eveniet sint tempora! Maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad laudantium deleniti ratione ea voluptas, dolore expedita nisi? Veniam, doloremque, reiciendis.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci blanditiis nam esse molestiae voluptatem maiores fugiat nulla commodi magni impedit.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora ducimus iure ipsa ea officia aliquid quibusdam nostrum obcaecati itaque temporibus!
</p>
</div>
</div>
Js
$(文档).ready(函数(){
$('#滑动导航条反转')。在($('')之后;
$('#滑动导航.navbar默认值')。在($('')之后;
var slidewidth='20%';
var navbarneg='-'+滑动宽度;
如果($(窗口).width()<767){
$(“#导航栏高度列”).css(“宽度”,滑动宽度);
$('#navbar height col').css(“左”,navbarneg);
$('slidenav#slidemenu').css(“宽度”,slidewidth);
$('slidenav#slidemenu').css(“左”,navbarneg);
}
$('slidemenu.close')。在('click',function()上{
所选变量=$('slidemenu')。hasClass('slide-active');
$('#slidemenu、.navbar toggle、.navbar header').toggleClass('slide-active');
$(“#slidemenu”).stop().animate({
左:选中?导航栏如:“0px”
});
$('.inverse').stop().animate({
左:选中?导航栏如:“0px”
});
//警报(1);
});
$(“#滑动导航”)。打开(“单击”,“导航栏切换”,功能(e){
//滑块处于活动状态
所选变量=$(this).hasClass('slide-active');
//设置滑块宽度
$(“#slidemenu”).stop().animate({
左:选中?导航栏如:“0px”
});
//设置导航栏宽度
$(“#导航栏高度列”).stop().animate({
左:选中?导航栏如:“0px”
});
$(this).toggleClass('slide-active',!selected);
$('slidemenu')。toggleClass('slide-active');
$('.navbar,.navbar header').toggleClass('slide-active');
});
所选变量='#slidemenu.navbar,.navbar标题';
$(窗口).on(“调整大小”,函数(){
如果($(window.width()>767&&$('.navbar toggle')。是(':hidden')){
$(选定).removeClass('slide-active');
}
});
});
这是你的小提琴
如果您花费更多的时间,代码可以优化到最少的行数
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation" id="slide-nav">
<div class="container">
<div class="navbar-header">
<a class="navbar-toggle"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </a>
<a class="navbar-brand" href="#">Project name</a>
</div>
<div id="slidemenu">
<a class="close">X</a>
<ul class="nav navbar-nav">
<li class="active">
<a href="#">Menu</a>
</li>
<li>
<a href="#">Menu</a>
</li>
<li>
<a href="#">Menu</a>
</li>
</ul>
</div>
</div>
</div>
<div id="page-content">
<div class="container">
<h1 class="no-margin-top">Left Sidebar menu</h1>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid sunt minus libero quas soluta blanditiis voluptatibus, eveniet sint tempora! Maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad laudantium deleniti ratione ea voluptas, dolore expedita nisi? Veniam, doloremque, reiciendis.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci blanditiis nam esse molestiae voluptatem maiores fugiat nulla commodi magni impedit.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora ducimus iure ipsa ea officia aliquid quibusdam nostrum obcaecati itaque temporibus!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid sunt minus libero quas soluta blanditiis voluptatibus, eveniet sint tempora! Maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad laudantium deleniti ratione ea voluptas, dolore expedita nisi? Veniam, doloremque, reiciendis.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci blanditiis nam esse molestiae voluptatem maiores fugiat nulla commodi magni impedit.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora ducimus iure ipsa ea officia aliquid quibusdam nostrum obcaecati itaque temporibus!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid sunt minus libero quas soluta blanditiis voluptatibus, eveniet sint tempora! Maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad laudantium deleniti ratione ea voluptas, dolore expedita nisi? Veniam, doloremque, reiciendis.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci blanditiis nam esse molestiae voluptatem maiores fugiat nulla commodi magni impedit.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora ducimus iure ipsa ea officia aliquid quibusdam nostrum obcaecati itaque temporibus!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquid sunt minus libero quas soluta blanditiis voluptatibus, eveniet sint tempora! Maxime!
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ad laudantium deleniti ratione ea voluptas, dolore expedita nisi? Veniam, doloremque, reiciendis.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Adipisci blanditiis nam esse molestiae voluptatem maiores fugiat nulla commodi magni impedit.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Tempora ducimus iure ipsa ea officia aliquid quibusdam nostrum obcaecati itaque temporibus!
</p>
</div>
</div>
Js
$(文档).ready(函数(){
$('#滑动导航条反转')。在($('')之后;
$('#滑动导航.navbar默认值')。在($('')之后;
var slidewidth='20%';
var navbarneg='-'+滑动宽度;
如果($(窗口).width()<767){
$(“#导航栏高度列”).css(“宽度”,滑动宽度);
$('#navbar height col').css(“左”,navbarneg);
$('slidenav#slidemenu').css(“宽度”,slidewidth);
$('slidenav#slidemenu').css(“左”,navbarneg);
}
$('slidemenu.close')。在('click',function()上{
所选变量=$('slidemenu')。hasClass('slide-active');
$('#slidemenu、.navbar toggle、.navbar header').toggleClass('slide-active');
$(“#slidemenu”).stop().animate({
左:选中?导航栏如:“0px”
});
$('.inverse').stop().animate({
左:选中?导航栏如:“0px”
});
//警报(1);
});
$(“#滑动导航”)。打开(“单击”,“导航栏切换”,功能(e){
//滑块处于活动状态
所选变量=$(this).hasClass('slide-active');
//设置滑块宽度
$(“#slidemenu”).stop().animate({
左:选中?导航栏如:“0px”
});
//设置导航栏宽度
$(“#导航栏高度列”).stop().animate({
左:选中?导航栏如:“0px”
});
$(this).toggleClass('slide-active',!selected);
$('slidemenu')。toggleClass('slide-active');
$('.navbar,.navbar header').toggleClass('slide-active');
});
所选变量='#slidemenu.navbar,.navbar标题';
$(窗口).on(“调整大小”,函数(){
如果($(window.width()>767&&$('.navbar toggle')。是(':hidden')){
$(选定).removeClass('slide-active');
}
});
});
请在一篇文章中发布您的代码(不是外部链接)(HTML/CSS/JS)的最小工作示例。请参阅和。当我想从左/右而不是从上/下滑动某些内容时,我通常会设置宽度的动画。您可以将菜单设置为位置:绝对;右:0;宽度:0;然后切换一个将宽度设置为100%的类。查看我的演示,你将从中学习。请在一个页面中发布你的代码(不是外部链接)(HTML/CSS/JS)的最小工作示例。请参阅和。当我想从左/右而不是从上/下滑动某些内容时,我通常会设置宽度的动画。您可以将菜单设置为位置:绝对;右:0;宽度:0;然后切换一个将宽度设置为100%的类。查看我的演示,你将从中学习。嗨,Fliido93,非常感谢你的回复,这正是我想要的!;)将它添加到我的项目中,一切似乎都很顺利!嗨,Fliido93,非常感谢您的回复,这正是我想要的!;)将它添加到我的项目中,一切似乎都很顺利!
body.slide-active {
overflow-x: hidden
}
#page-content {
position: relative;
padding-top: 70px;
left: 0;
}
#page-content.slide-active {
padding-top: 0
}
#slide-nav .navbar-toggle {
cursor: pointer;
position: relative;
line-height: 0;
float: left;
margin: 0;
width: 30px;
height: 40px;
padding: 17px 0 0 0;
border: 0;
background: transparent;
}
#slide-nav .navbar-toggle.slide-active .icon-bar {
background: #CC0F0F;
color: #CC0F0F;
}
.navbar-header {
position: relative
}
.navbar.navbar-fixed-top.slide-active {
position: relative
}
@media (max-width: 767px) {
#slide-nav .container {
margin: 0 !important;
padding: 0 !important;
height: 100%;
}
#slide-nav .navbar-header {
margin: 0 auto;
padding: 0 15px;
}
#slide-nav .navbar.slide-active {
position: absolute;
width: 80%;
top: -1px;
z-index: 1000;
}
#slide-nav #slidemenu {
background: #f7f7f7;
left: -100%;
min-width: 0;
position: absolute;
padding-left: 0;
z-index: 2;
top: -8px;
margin: 0;
}
#slide-nav #slidemenu .navbar-nav {
min-width: 0;
width: 100%;
margin: 0;
margin-top: 40px;
}
#slide-nav #slidemenu .navbar-nav .dropdown-menu li a {
min-width: 0;
width: 80%;
white-space: normal;
}
#slide-nav {
border-top: 0
}
#slide-nav.navbar-inverse #slidemenu {
background: #333
}
#navbar-height-col {
position: fixed;
top: 0;
height: 100%;
bottom: 0;
background: #f7f7f7;
}
#navbar-height-col.inverse {
background: #333;
z-index: 1;
border: 0;
}
#slide-nav .navbar-form {
width: 100%;
margin: 8px 0;
text-align: center;
overflow: hidden;
/*fast clearfixer*/
}
#slide-nav .navbar-form .form-control {
text-align: center
}
#slide-nav .navbar-form .btn {
width: 100%
}
#slidemenu .close {
color: white;
margin: 10px;
}
}
@media (min-width: 768px) {
#page-content {
left: 0 !important
}
.navbar.navbar-fixed-top.slide-active {
position: fixed
}
.navbar-header {
left: 0 !important
}
}
$(document).ready(function() {
$('#slide-nav.navbar-inverse').after($('<div class="inverse" id="navbar-height-col"></div>'));
$('#slide-nav.navbar-default').after($('<div id="navbar-height-col"></div>'));
var slidewidth = '20%';
var navbarneg = '-' + slidewidth;
if ($(window).width() < 767) {
$('#navbar-height-col').css("width", slidewidth);
$('#navbar-height-col').css("left", navbarneg);
$('#slide-nav #slidemenu').css("width", slidewidth);
$('#slide-nav #slidemenu').css("left", navbarneg);
}
$('#slidemenu .close').on('click', function() {
var selected = $('#slidemenu').hasClass('slide-active');
$('#slidemenu, .navbar-toggle, .navbar-header').toggleClass('slide-active');
$('#slidemenu').stop().animate({
left : selected ? navbarneg : '0px'
});
$('.inverse').stop().animate({
left : selected ? navbarneg : '0px'
});
//alert(1);
});
$("#slide-nav").on("click", '.navbar-toggle', function(e) {
// slider is active
var selected = $(this).hasClass('slide-active');
// set slidemenu width
$('#slidemenu').stop().animate({
left : selected ? navbarneg : '0px'
});
// set navbar width
$('#navbar-height-col').stop().animate({
left : selected ? navbarneg : '0px'
});
$(this).toggleClass('slide-active', !selected);
$('#slidemenu').toggleClass('slide-active');
$('.navbar, .navbar-header').toggleClass('slide-active');
});
var selected = '#slidemenu .navbar, .navbar-header';
$(window).on("resize", function() {
if ($(window).width() > 767 && $('.navbar-toggle').is(':hidden')) {
$(selected).removeClass('slide-active');
}
});
});