Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用类似于mmenu的jQuery创建具有多级滑动窗格的非画布菜单?_Javascript_Jquery_Html_Css_Off Canvas Menu - Fatal编程技术网

Javascript 如何使用类似于mmenu的jQuery创建具有多级滑动窗格的非画布菜单?

Javascript 如何使用类似于mmenu的jQuery创建具有多级滑动窗格的非画布菜单?,javascript,jquery,html,css,off-canvas-menu,Javascript,Jquery,Html,Css,Off Canvas Menu,我想马上接受一个事实,那就是有很多图书馆,也有很多类似的问题。但没有人能解决我手头的问题 我已经创建了一个非画布移动式滑动菜单的灵感来自 为了实现这一点,我采用了一种方法,即使用不同的z-index值制作窗格,然后将它们转换为锚定单击 是否有一种方法可以自动在上创建(“单击”,函数(){})单击相应的链接时,使用jQuery打开相应的窗格 以下是我目前的代码: $(文档).ready(函数(){ $(“.vjNav”).prepend(“HelloNav标题 同一种知识是一种美德,它是一种美德

我想马上接受一个事实,那就是有很多图书馆,也有很多类似的问题。但没有人能解决我手头的问题

我已经创建了一个非画布移动式滑动菜单的灵感来自

为了实现这一点,我采用了一种方法,即使用不同的
z-index
值制作
窗格,然后将它们转换为锚定单击

是否有一种方法可以自动在上创建
(“单击”,函数(){})单击相应的链接时,使用jQuery打开相应的窗格

以下是我目前的代码:

$(文档).ready(函数(){
$(“.vjNav”).prepend(“HelloNav标题
同一种知识是一种美德,它是一种美德,它的别名是奥特姆·阿迪皮斯(autem ab adipisci),是一种智慧的化身,是一种智慧的化身,是一种智慧的化身






























这是一位杰出的建筑设计师兼高级建筑设计师的共同愿望,他认为这是一种不公平的行为,是一种不公平的行为


您可以尝试实现类似的功能……将其放在单独的文件中,并在页面上调用它

 /* PushMenu()
 * ==========
 * Adds the push menu functionality to the sidebar.
 *
 * @usage: $('.btn').pushMenu(options)
 *          or add [data-toggle="push-menu"] to any button
 *          Pass any option as data-option="value"
 */
+function ($) {
 'use strict';

  var DataKey = 'lte.pushmenu';

  var Default = {
  collapseScreenSize   : 767,
  expandOnHover        : false,
  expandTransitionDelay: 200
  };

  var Selector = {
     collapsed     : '.sidebar-collapse',
     open          : '.sidebar-open',
     mainSidebar   : '.main-sidebar',
     contentWrapper: '.content-wrapper',
     searchInput   : '.sidebar-form .form-control',
     button        : '[data-toggle="push-menu"]',
     mini          : '.sidebar-mini',
     expanded      : '.sidebar-expanded-on-hover',
     layoutFixed   : '.fixed'
   };

   var ClassName = {
   collapsed    : 'sidebar-collapse',
   open         : 'sidebar-open',
   mini         : 'sidebar-mini',
   expanded     : 'sidebar-expanded-on-hover',
   expandFeature: 'sidebar-mini-expand-feature',
   layoutFixed  : 'fixed'
  };

  var Event = {
   expanded : 'expanded.pushMenu',
   collapsed: 'collapsed.pushMenu'
  };

// PushMenu Class Definition
// =========================
  var PushMenu = function (options) {
  this.options = options;
  this.init();
  };

  PushMenu.prototype.init = function () {
     if (this.options.expandOnHover
     || ($('body').is(Selector.mini + Selector.layoutFixed))) {
     this.expandOnHover();
     $('body').addClass(ClassName.expandFeature);
  }

    $(Selector.contentWrapper).click(function () {
    // Enable hide menu when clicking on the content-wrapper on small screens
    if ($(window).width() <= this.options.collapseScreenSize && 
    $('body').hasClass(ClassName.open)) {
    this.close();
    }
  }.bind(this));

  // __Fix for android devices
      $(Selector.searchInput).click(function (e) {
      e.stopPropagation();
    });
  };

  PushMenu.prototype.toggle = function () {
    var windowWidth = $(window).width();
    var isOpen      = !$('body').hasClass(ClassName.collapsed);

  if (windowWidth <= this.options.collapseScreenSize) {
     isOpen = $('body').hasClass(ClassName.open);
   }

  if (!isOpen) {
  this.open();
  } else {
  this.close();
  }
};

PushMenu.prototype.open = function () {
var windowWidth = $(window).width();

if (windowWidth > this.options.collapseScreenSize) {
  $('body').removeClass(ClassName.collapsed)
    .trigger($.Event(Event.expanded));
}
 else {
  $('body').addClass(ClassName.open)
    .trigger($.Event(Event.expanded));
  }
};

PushMenu.prototype.close = function () {
var windowWidth = $(window).width();
if (windowWidth > this.options.collapseScreenSize) {
  $('body').addClass(ClassName.collapsed)
    .trigger($.Event(Event.collapsed));
} else {
  $('body').removeClass(ClassName.open + ' ' + ClassName.collapsed)
    .trigger($.Event(Event.collapsed));
  }
};

PushMenu.prototype.expandOnHover = function () {
$(Selector.mainSidebar).hover(function () {
  if ($('body').is(Selector.mini + Selector.collapsed)
    && $(window).width() > this.options.collapseScreenSize) {
    this.expand();
  }
}.bind(this), function () {
   if ($('body').is(Selector.expanded)) {
    this.collapse();
   }
 }.bind(this));
};

PushMenu.prototype.expand = function () {
setTimeout(function () {
  $('body').removeClass(ClassName.collapsed)
    .addClass(ClassName.expanded);
 }, this.options.expandTransitionDelay);
};

PushMenu.prototype.collapse = function () {
setTimeout(function () {
  $('body').removeClass(ClassName.expanded)
    .addClass(ClassName.collapsed);
  }, this.options.expandTransitionDelay);
};

// PushMenu Plugin Definition
// ==========================
function Plugin(option) {
return this.each(function () {
  var $this = $(this);
  var data  = $this.data(DataKey);

  if (!data) {
    var options = $.extend({}, Default, $this.data(), typeof option == 'object' && option);
    $this.data(DataKey, (data = new PushMenu(options)));
  }

  if (option === 'toggle') data.toggle();
  });
}

var old = $.fn.pushMenu;

$.fn.pushMenu             = Plugin;
$.fn.pushMenu.Constructor = PushMenu;

// No Conflict Mode
// ================
$.fn.pushMenu.noConflict = function () {
$.fn.pushMenu = old;
return this;
};

// Data API
// ========
 $(document).on('click', Selector.button, function (e) {
 e.preventDefault();
 Plugin.call($(this), 'toggle');
});
 $(window).on('load', function () {
 Plugin.call($(Selector.button));
 });
}(jQuery);
/*PushMenu()
* ==========
*将推送菜单功能添加到侧栏。
*
*@usage:$('.btn').pushMenu(选项)
*或将[data toggle=“push menu”]添加到任何按钮
*将任何选项作为数据option=“value”传递
*/
+函数($){
"严格使用",;
var DataKey='lte.pushmenu';
var默认值={
折叠屏幕大小:767,
expandOnHover:false,
ExpandTransitionLay:200
};
变量选择器={
折叠:'.sidebar折叠',
打开:'.sidebar打开',
主侧栏:'.main侧栏',
contentWrapper:“.content wrapper”,
searchInput:'.sidebar form.form控件',
按钮:“[data toggle=“push menu”]”,
迷你版:'.sidebar迷你版',
展开:'.侧栏在悬停时展开',
layoutFixed:“.fixed”
};
变量类名称={
折叠:“侧边栏折叠”,
打开:“侧边栏打开”,
迷你:'侧边栏迷你',
展开:“悬停时侧栏展开”,
expandFeature:“侧边栏迷你扩展功能”,
layoutFixed:“已修复”
};
var事件={
expanded:“expanded.pushMenu”,
折叠:“折叠。按菜单”
};
//按钮菜单类定义
// =========================
var PushMenu=功能(选项){
this.options=选项;
this.init();
};
PushMenu.prototype.init=函数(){
如果(this.options.expandOnHover
||($('body').is(Selector.mini+Selector.layoutFixed))){
这是expandOnHover();
$('body').addClass(ClassName.expandFeature);
}
$(Selector.contentWrapper)。单击(函数(){
//在小屏幕上单击内容包装时启用隐藏菜单
if($(window.width()this.options.collapseScreenSize){
$('body').addClass(ClassName.collapsed)
.trigger($.Event(Event.collapsed));
}否则{
$('body').removeClass(ClassName.open+''+ClassName.collapsed)
.trigger($.Event(Event.collapsed));
}
};
PushMenu.prototype.expandOnHover=函数(){
$(Selector.mainSidebar).hover(函数(){
如果($('body').is(Selector.mini+Selector.collapsed)
&&$(window.width()>this.options.collapseScreenSize){
这个。展开();
}
}.bind(this),函数(){
if($('body').is(Selector.expanded)){
这个。崩溃();
}
}.约束(这个);
};
PushMenu.prototype.expand=函数(){
setTimeout(函数(){
$('body').removeClass(ClassName.collapsed)
.addClass(ClassName.expanded);
},this.options.expandTransitionLay);
};
PushMenu.prototype.collapse=函数(){
setTimeout(函数(){
$('body').removeClass(ClassName.expanded)
.addClass(ClassName.collapsed);
},this.options.expandTransitionLay);
};
//按钮菜单插件定义
// ==========================
功能插件(选项){
返回此。每个(函数(){
var$this=$(this);
var data=$this.data(DataKey);
如果(!数据){
var options=$.extend({},默认值,$this.data(),typeof option=='object'&&option);
$this.data(DataKey,(data=newpushmenu(options));
}
if(option==='toggle')data.toggle();
});
}
var old=$.fn.pushMenu;
$.fn.pushMenu=插件;
$.fn.pushMenu.Constructor=pushMenu;
//无冲突模式
// ================
$.fn.pushMenu.noConflict=函数(){
$.fn.pushMenu=旧;
归还这个;
};
//数据API
// ========
$(文档).on('click',Selector.button,函数(e){
e、 预防默认值();
Plugin.call($(this),'toggle');
});
$(窗口).on('load',函数(){
Plugin.call($(Selector.button));
});
}(jQuery);