- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个始终可见的 Materialise 固定侧导航。我想添加打开和关闭它的按钮。
如果我将 $('.sidenav').sidenav('close')
添加到按钮,它只能关闭侧边栏;与 $('.sidenav').sidenav('open')
类似。
我不想制作两个按钮。我该如何解决这个问题?
这是初始化侧边栏的函数:
$(document).ready(function () {
$('.sidenav').sidenav();
});
这是我的 HTML:
<ul id="slide-out" class="sidenav sidenav-fixed">
<li>
<div class="user-view">
<div class="background">
<img src="img/flag.png">
</div>
<a href="#user"><img class="circle" src="img/yuna.jpg"></a>
<a href="#name"><span class="white-text name">John Doe</span></a>
<a href="#email"><span class="white-text email">jdandturk@gmail.com</span></a>
</div>
</li>
<div class="nav-wrapper">
<form>
<div class="input-field">
<input id="search" type="search" required>
<label class="label-icon" for="search"><i class="material-icons">search</i></label>
<i class="material-icons">close</i>
</div>
</form>
</div>
<li><a href="#!"><i class="material-icons">account_balance</i>Departments</a></li>
<li><a href="#!"><i class="material-icons">store</i>Regions</a></li>
<li><a href="#!"><i class="material-icons">description</i>Districts</a></li>
<li><a href="#!"><i class="material-icons">panorama</i>Cities</a></li>
<li><a href="#!"><i class="material-icons">time_to_leave</i>Vehicles</a></li>
<li><div class="divider"></div></li>
<li><a class="subheader">Subheader</a></li>
<li><a class="waves-effect" href="#!">Third Link With Waves</a></li>
<li><a class="sidenav-close" href="#!">Clicking this will close Sidenav</a></li>
</ul>
我有一个带有 .sidenav-close
类的按钮,该按钮不起作用(默认情况下)。我认为这是因为我的侧边栏是固定的。
是否有默认的打开和关闭方法?
这是我的按钮,需要打开/关闭它:
<a href="#!" data-target="slide-out" class="sidenav-trigger rb_nav_btn">
<i class="material-icons">menu</i>
</a>
我考虑编写一个函数来检查侧边栏是否打开,然后在单击时将其关闭,反之亦然。
最佳答案
固定导航栏并不意味着关闭...它的唯一意义是提供一种快速方法来实现始终可见的导航栏。因此,您所要求的基本上是在初始化后立即打开一个简单的导航栏...简单导航栏和固定导航栏之间的唯一区别是后者开始打开。
顺便说一句,正如您认为可以使用属性instance.isOpen
,如 Docs 中所述。 检查侧导航是否打开。如果是,则关闭它,否则打开它。我使用了 float 按钮并注释了 sidenav 的默认触发器,因为它的功能被 float 按钮取代了。
注意:为了查看其实际效果,您需要运行代码片段并单击整页链接,否则您将看不到导航栏,并且您将无法看到导航栏。必须手动打开它。这是因为从代码来看,如果窗口的宽度为 < 992,则 Sidenav 会自行关闭:
来源:materialize.js (第 5834 行)
value: function _handleWindowResize() {
// Only handle horizontal resizes
if (this.lastWindowWidth !== window.innerWidth) {
if (window.innerWidth > 992) {
this.open();
} else {
this.close();
}
}
this.lastWindowWidth = window.innerWidth;
this.lastWindowHeight = window.innerHeight;
}
<小时/>
这是您的脚本:
document.addEventListener("DOMContentLoaded", function() {
var elems = document.querySelectorAll(".sidenav");
var options = {};
var instances = M.Sidenav.init(elems, options);
document
.querySelector("#toggle_sidenav")
.addEventListener("click", function() {
var elem = document.querySelector(".sidenav");
var instance = M.Sidenav.getInstance(elem);
if (instance.isOpen) {
console.log("Is open: I need to close it");
instance.close();
} else {
console.log("Is closed: I need to open it");
instance.open();
}
});
});
header, main, footer {
padding-left: 300px;
}
@media only screen and (max-width: 992px) {
header, main, footer {
padding-left: 0;
}
}
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<!--Import Google Icon Font-->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<ul id="slide-out" class="sidenav sidenav-fixed">
<li><a href="#!">First Sidebar Link</a></li>
<li><a href="#!">Second Sidebar Link</a></li>
</ul>
<!-- <a href="#" data-target="slide-out" class="sidenav-trigger"><i class="material-icons">menu</i></a> -->
<div style='position: absolute; bottom:10px; right:10px'>
<a id="toggle_sidenav" class="btn-floating btn-large waves-effect waves-light red"><i class="material-icons">add</i></a>
</div>
关于javascript - Materialise 固定侧边栏关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54595661/
我正在尝试实现 3 列固定-流体-固定布局。此外,布局的高度必须占据整个屏幕,使其看起来像从上到下的 3 个实心列。 总结: Left-column: fixed-width Center-col
我在网上搜索过,似乎找不到一个干净、简单、所有浏览器都友好的 3 列布局。 我希望有 3 列布局,左列固定为 200px,右列固定为 200px,中间列为剩余宽度,但最小宽度为 600px。所以整体最
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this q
我正在使用一些音频指纹技术来标记长录音中的歌曲。例如,在广播节目中的记录。指纹机制工作正常,但我在归一化(或下采样)方面遇到问题。 在这里您可以看到两首相同的歌曲,但波形不同。我知道我应该进行一些直流
为什么使用cout调用setprecision和fixed以及其他iomanip函数不像例如name.find('')plz这样的字符串函数 最佳答案 它们允许您以以下方式链接操作: cout <<
我正在尝试创建一个侧边栏,当用户向下滚动页面时,该侧边栏会跟随用户,并且我设法使用以下代码实现了效果: 标记 Javas
我正在尝试设置一些性能分析以及影响缓冲策略的运行时决策。我的应用程序收到一个指向由库(CUDA 或 OpenCL)分配的缓冲区的指针。 如何测试内存区域是否被页面锁定? 据我所知,POSIX 给了我们
我正在用 C# 编写一个 B+ 树实现,我为我的应用程序选择的树实现有一个非常特定的结构,它是缓存敏感的。为了实现这些属性,它对树节点有严格的布局策略。 我想要的只是使用 C# 的 fixed 来表达
我试图通过将 fragment 注入(inject)容器来在每个屏幕的底部放置一个广告 View 。通过使用 LinearLayout,我可以将 adview 置于操作栏下方的顶部。我已经尝试了 Re
我正在尝试创建一个导航稍微复杂的网站。我已经让导航看起来像我想要的初始加载,但现在我试图让它粘性导航到滚动顶部。我已经能够在导航栏到达顶部时创建一个类,但无法使其粘滞。每次我添加一个位置时,它都会跳回
首先,我正在寻找一个纯 CSS 解决方案。我可以使用 JavaScript 非常轻松地做到这一点,所以不要费心给我提示如何在 JS 中做到这一点。 我有一个包含 3 个容器的网页。其中 2 个是固定的
我猜这里有一种 super 特例。 我正在处理许多包含。现在我正在一个包含的内容文件中编码。我需要一个灯箱,它有一个 20% 的黑色背景覆盖整个页面,包括本身固定的标题,并在先前的 PHP 文件中设置
我正在尝试制作一个包含两个“固定”侧边栏图像和一个“固定”标题图像的页面。由于标题是固定的(距顶部 0 到 10%)。我不希望页眉图像与页面上的任何文本重叠。我尝试将段落标记定位为“相对”,并将其设置
我遇到了一个(水平)居中固定位置元素的解决方案,如下所示: element { width: 200px; position: fixed; left: 0; righ
我试图让我的网站主体具有固定的高度(我想!)。 无论如何,站点正文只是白色,边框大小为 1。基本上,正文的大小取决于其中的内容,例如,随着添加更多内容,它会自动调整大小。 我想要的是垂直滚动条,这样主
是否可以在 css 中创建 master-detail-states 布局? 我需要 3 个占位符: +---------------+-------+ | A | B
我的问题是,我是否必须在每个 Get/Post 请求之前单独请求检查 SSL Pinning OkHttpClient client = new OkHttpClient.Builder().cert
假设我有一个具有 N 个节点的常量(一旦构建就不会改变)平衡树,每个内部节点都有 p 个子节点。显然,访问节点的最坏情况是 logp(N)。但是访问 r 个节点的摊销成本呢?如果我们按升序访问它们(有
我知道会话固定是用php破解网站的方法。 会话固定是一种允许攻击者劫持有效用户会话的攻击 session fixation 但我不知道这可以防止我的项目中出现此问题。 是描述解决方案的方式或样本。 最
我在 jquery 砖石布局内有一个导航元素,我想将其修复到特定位置,比如右上角。是否可以这样做,以便所有其他元素都位于它周围? 诸如前置导航之类的东西.. 这是我的代码:http://jsfiddl
我是一名优秀的程序员,十分优秀!