我正在尝试获取一个转换,以便在点击汉堡菜单时激活。我的javascript和css除了创建一个从上到下的缓慢的nav下拉转换之外,其他所有功能都可以实现。
试图在网上找到一个答案,让我找到了许多不同的方法来创造一个过渡。所以我对此迷路了,如果有一个标准的方法来做这件事,请协助我。我不是想偷懒,但我看到了5种不同的方法。不确定我需要在我的CSS中瞄准什么。谢谢
<header>
<button class="hamburger hamburger--squeeze" type="button">
<span class="hamburger-box">
<span class="hamburger-inner"></span>
</span>
</button>
<img class="header-logo" src="/logo/piancavallo-logo.svg" alt="">
<nav>
<ul class="nav-links">
<li><a href="index.html">home</a></li>
<li><a href="shop.html">shop</a></li>
<li><a href="sport.html">sport</a></li>
<li><a href="read.html">read</a></li>
<li><a href="about.html">about</a></li>
</ul>
</nav>
<img class="search-icon" src="/logo/search-icon.svg" alt="">
<img class="shopping-cart" src="/logo/shopping-cart.svg" alt="">
</header>
nav {
position: absolute;
text-align: left;
top: 100%;
left: 0;
}
nav .nav-links {
display: none;
background-color: orange;
font-size: 1.4rem;
position: absolute;
width: 100vw;
}
nav .nav-active {
display: block;
}
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
margin: 5px;
padding: 5px;
}
nav a {
text-decoration: none;
color: green;
font-weight: 700;
}
nav ul {
-webkit-transition: height 1s ease-in;
transition: height 1s ease-in;
}
const revealNav = () => {
const hamburger = document.querySelector('.hamburger');
const nav = document.querySelector('.nav-links');
hamburger.addEventListener('click', () => {
hamburger.classList.toggle('is-active');
}, false);
hamburger.addEventListener('click', () => {
nav.classList.toggle('nav-active');
});
}
revealNav();
据我所知,没有一个标准或更好的方法来做到这一点,这很大程度上取决于你试图达到的视觉效果。
我这里有一个解决方案,我已经剥离了大部分不需要的CSS,顶部/底部转换。
我还有一个不透明性的跳跃,这在开发过程中可能会很有帮助,因为它会向您显示添加或删除类的确切时间。
null
const revealNav = () => {
const hamburger = document.querySelector('.hamburger');
const nav = document.querySelector('.nav-links');
hamburger.addEventListener('click', () => {
nav.classList.toggle('is-active');
});
}
revealNav();
nav {
overflow: hidden;
}
.nav-links {
opacity: 1; /* only to show when class is added */
background-color: orange;
margin: 0;
padding: 0;
list-style: none;
transition: transform 1s;
transform: translateY(-100%);
}
.nav-links.is-active {
opacity: 1; /* only to show when class is added */
transform: translateY(0);
}
<header>
<button class="hamburger hamburger--squeeze" type="button">
<span class="hamburger-box">
<span class="hamburger-inner">hamburger</span>
</span>
</button>
<nav>
<ul class="nav-links">
<li><a href="index.html">home</a></li>
<li><a href="shop.html">shop</a></li>
<li><a href="sport.html">sport</a></li>
<li><a href="read.html">read</a></li>
<li><a href="about.html">about</a></li>
</ul>
</nav>
</header>
问题内容: Java中的所有数字都应为int类型。以下行在Java> 1.5中是合法的 同样的机制去和实例。但是龙的作品完全不同。以下代码给出了编译时错误 Long对长类型使用自动装箱方法,因此 我看不到为什么不能将int赋给Long变量。关于这个问题有什么想法吗? 问题答案: 我认为问题不在于泛型转换原语和包装。问题是关于将int转换为java.lang.Long和将int转换为java.lan
问题内容: 您可以将int隐式转换为double: 您可以将int显式转换为double: 您可以将double显式转换为int: 为什么不能将一个double隐式转换为int? : 问题答案: 的范围比宽。这就是为什么您需要显式强制转换。由于相同的原因,您不能隐式地从转换为:
问题内容: 执行此强制转换时出现编译错误: 应该被继承,尽管不能直接继承。 从文档: 农具其中inturn & 为什么这无效? 也感谢您提供有关使用as 的正确方法的意见? 我正在考虑包装方法。 问题答案: 扩展,并且 不 扩展。 如果您想从中获得帮助,我认为实现包装器类是您最简单的选择。幸运的是的唯一抽象方法是。 RandomAccessFile实现了DataInput,该数据输入将依次转为Da
我正在为一个类编写一个单元测试,如下所示: 现在,当我运行这段代码时,它给我一个错误,即我无法将强制转换为Java中的集合。 ps:有一个单独的类,名为,它的setter如下所示: 而我正在尝试使用上面的这种方法。
问题内容: 我发现了一些奇怪的异常: 怎么可能呢?每个对象都可以转换为String,不是吗? 代码是: 谢谢。 问题答案: 为什么这不可能: 因为String和Integer不在同一对象层次结构中。 您尝试的转换仅在相同的层次结构中有效,例如 在这种情况下,或或将起作用。 因此,正如其他人已经提到的,要将整数转换为字符串,请使用: 或对于原始 要么 为对象。
问题内容: 我有那个代码 有时,强制转换为无效。当我看到。为什么会这样呢?我使用来自GitHub的SwiftSocket库。对不起我的英语不好。 当我的服务器发送大字符串时会发生这种情况。例如- 如果我收到一个消息对象(我的班级)-一切都会正常。但是,如果我收到4,5,6,…消息对象(我的班级),这有时会起作用。MAGIC :( 新版本的代码 问题答案: 注意:我不会讲Swift。以下代码可能无法
问题内容: 我发现一些代码我工作的地方的点被强制转换,因为它是传递给方法。 为什么要这样做? 我知道这个问题涉及重载的方法,并使用类型转换来确定要调用的方法的版本。 但是,如果不执行强制类型转换,如果使用空参数调用该方法,那么是否会重选带有其他类型的参数的重载方法呢?那么演员阵容还能完成什么呢? 问题答案: 如果 未 执行转换,则将选择 最具体的 版本。 可以是type 或type 的空引用。因此
问题内容: 所以这工作: 但这不是: 总而言之,我得到了第一部分(拳击),但是我发现第二部分不起作用是非常不直观的。是否有特定的原因(除了String从Object继承而int不从Object继承)? 编辑: 为了完善我的问题,这也可以: 但是,以下内容却没有: 令人惊讶的是,您遇到了与String相同的问题: 在最后一行产生类强制转换异常。仍然有效: 问题答案: 我刚刚找到了我正在寻找自己的答案