- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个隐藏的覆盖 div,并设置为在单击两个按钮中的任何一个时显示。我想做的是,如果单击一个按钮,该元素将以特定的 z-index 显示,如果再次单击同一元素,该元素将再次隐藏。但是,如果元素可见并且单击了第二个 div,我只想更改叠加层的 z-index,当然,如果再次单击第二个按钮,我希望叠加层消失。我正在尝试使用 If Else 语句和 jQuery 来实现这一点,这是代码。它没有按照我想要的方式工作,因为我可以使叠加层出现,但不会按预期消失/更改 z-index。
$(document).ready(function() {
$(".dot").click(function(){
$(this).data("clicked", true);
});
$(".burgerMenu").click(function() {
$(this).data("clicked", true);
//Overlay Animation
if ($(this).data("clicked") && $(".block").is(":visible")) {
//alert("IT WORKS!");
$(".block").css("z-index", "+1");
} else if ($(this).data("clicked") && $(".block").is(":hidden")) {
$(".block").css("z-index", "+1");
$(".block").css("display", "block");
} else if ($(this).data("clicked") && $(".block").css("z-index") > "-1") {
$(".block").css("display", "none");
} else {
alert("Ah lads.");
}
});
});
/* FAB SECTION */
.dot
{
position: absolute;
bottom: 100px;
left: 200px;
}
#fab {
position: absolute;
color: white;
font-size: 18px;
text-align: center;
width: 100px;
height: 100px;
background-color: #6eadea;
border-radius: 50%;
box-shadow: 6px 10px 18px #686868;
}
#plusContain {
position: relative;
width: 100%;
height: 100%;
}
#plus {
position: relative;
margin: auto;
top: 50%;
transform: translateY(-50%);
}
/* DIALOGUE/MENU OVERLAY */
.block {
position: fixed;
width: 100%;
height: 100%;
top: 0;
background-color: red;
opacity: 0.8;
display: none;
z-index: -1;
}
/* BURGER MENU SECTION */
.burgerMenu {
position: absolute;
margin: auto;
height: 50px;
width: 50px;
cursor: pointer;
bottom: 10px;
}
.bar {
height: 6px;
width: 100%;
background-color: black;
}
#top {
position: relative;
top: 5px;
}
#middle {
position: relative;
top: 15px;
}
#bottom {
position: relative;
top: 25px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="fab" class="dot dotDown">
<div id=plusContain class="fab rotate">
<div id="plus">+</div>
</div>
</div>
<!--MENU OVERLAY-->
<div id="overlay" class="block"></div>
<!--Burger-->
<div id="burger" class="burgerMenu">
<div id="top" class="bar barTop"></div>
<div id="middle" class="bar barMid"></div>
<div id="bottom" class="bar barBot"></div>
</div>
最佳答案
我无法对您的帖子发表评论,如果没有正确回答您,我深表歉意。
首先是'ifs',里面的$(this).data("clicked")
是必要的吗?每次开始检查之前,您都使用 $(this).data("clicked", true);
将其设置为 true,因此它有点多余。
然后你检查 .block
是否可见
,或者它是否是隐藏
,这意味着你永远不会到达第三个如果.
我的问题是我不完全理解您在这里尝试的内容。您希望当单击汉堡包时,会出现一个叠加层,使汉堡包保持在前面,但覆盖层后面的点。当您再次单击汉堡时,叠加层会消失并返回到开始位置。我假设点与汉堡具有相同的行为。
如果这是您想要的行为,那么我会采取更像这样的不同方法:
$(document).ready(function() {
function modifyOverlay(new_z_index) {
/** If the overlay is hidden, we just show it with the z-index we
* get in new_z_index (new_z_index == 1 means that dot was clicked,
* new_z_index == 3 means that burger was clicked)
*/
if ($(".block").is(":hidden")) {
$(".block").css("display", "block");
$(".block").css("z-index", new_z_index); // 1 or 3
} else if ($(".block").css("z-index") != new_z_index) {
/** Because of the first if, we know that the overlay
* is visible (which means it has z-index 1 or 3).
* The only time the current z-index of the overlay will
* be different from the new_z_index (this is what we are
* checking on this if) is when you click the burger
* (new_z_index == 3) while the dot is also upfront
* (current overlay z-index == 1)
*/
$(".block").css("z-index", new_z_index); // So we just set the z-index
// to new_z_index (which will
// be 3) hidding the dot
} else {
/** If we get to this else, we know that the overlay is visible
* (because of the first if) and we know that the current
* z-index is equal to the new_z_index (because of the second
* if).
* So the possible cases are:
* overlay's z-index is 3, and we pressed the burger (3)
* or overlay's z-index is 1, and we pressed the dot (1),
* both cases mean we hide the overlay
*/
$(".block").css("display", "none");
$(".block").css("z-index", "0");
}
}
$(".dot").click(function(){
//Overlay Animation
modifyOverlay(1);
});
$(".burgerMenu").click(function() {
//Overlay Animation
modifyOverlay(3);
});
});
/* FAB SECTION */
.dot
{
position: absolute;
bottom: 100px;
left: 200px;
}
#fab {
position: absolute;
color: white;
font-size: 18px;
text-align: center;
width: 100px;
height: 100px;
background-color: #6eadea;
border-radius: 50%;
box-shadow: 6px 10px 18px #686868;
z-index: 2;
}
#plusContain {
position: relative;
width: 100%;
height: 100%;
}
#plus {
position: relative;
margin: auto;
top: 50%;
transform: translateY(-50%);
}
/* DIALOGUE/MENU OVERLAY */
.block {
position: fixed;
width: 100%;
height: 100%;
top: 0;
background-color: red;
opacity: 0.8;
display: none;
z-index: 0;
}
/* BURGER MENU SECTION */
.burgerMenu {
z-index: 4;
position: absolute;
margin: auto;
height: 50px;
width: 50px;
cursor: pointer;
bottom: 10px;
}
.bar {
height: 6px;
width: 100%;
background-color: black;
}
#top {
position: relative;
top: 5px;
}
#middle {
position: relative;
top: 15px;
}
#bottom {
position: relative;
top: 25px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="fab" class="dot dotDown">
<div id=plusContain class="fab rotate">
<div id="plus">+</div>
</div>
</div>
<!--MENU OVERLAY-->
<div id="overlay" class="block"></div>
<!--Burger-->
<div id="burger" class="burgerMenu">
<div id="top" class="bar barTop"></div>
<div id="middle" class="bar barMid"></div>
<div id="bottom" class="bar barBot"></div>
</div>
代码段的更改:
.block
的 z-index 为 0。.burgerMenu
的 z-index 为 -1。.upfront
。编辑:
代码段的更改:
.burgerMenu
的 z-index 为 4。#fab
的 z-index 为 2。.upfront
。关于javascript - 在 z-index 条件下隐藏 div 的 else-if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45057833/
这个问题已经有答案了: 已关闭14 年前。 ** 重复:What's the difference between X = X++; vs X++;? ** 所以,即使我知道你永远不会在代码中真正做到
我在一本C语言的书上找到了这个例子。此代码转换输入数字基数并将其存储在数组中。 #include int main(void) { const char base_digits[16] =
尝试使用“pdf_dart”库保存 pdf 时遇到问题。 我认为问题与我从互联网下载以尝试附加到 pdf 的图像有关,但我不确定它是什么。 代码 import 'dart:io'; import 'p
我的 Apache 服务器曾经可以正常工作,但它随机开始对几乎每个目录发出 403 错误。两个目录仍然有效,我怎样才能使/srv/www/htdocs 中的所有目录正常工作? 我查看了两个可用目录的权
这些索引到 PHP 数组的方法之间有什么区别(如果有的话): $array[$index] $array["$index"] $array["{$index}"] 我对性能和功能上的差异都感兴趣。 更
我有一个简单的结构,我想为其实现 Index,但作为 Rust 的新手,我在借用检查器方面遇到了很多麻烦。我的结构非常简单,我想让它存储一个开始值和步长值,然后当被 usize 索引时它应该返回 st
我对 MarkLogic 中的 element-range-index 和 field-range-index 感到困惑。 请借助示例来解释差异。 最佳答案 这两个都是标量索引:特定类型的基于值的排序
我对 MarkLogic 中的 element-range-index 和 field-range-index 感到困惑。 请借助示例来解释差异。 最佳答案 这两个都是标量索引:特定类型的基于值的排序
所以我有一个 df,我在其中提取一个值以将其存储在另一个 df 中: import pandas as pd # Create data set d = {'foo':[100, 111, 222],
我有一个由 codeigniter 编写的网站,我已经通过 htaccess 从地址中删除了 index.php RewriteCond $1 !^(index\.php|resources|robo
谁能告诉我这两者有什么区别: ALTER TABLE x1 ADD INDEX(a); ALTER TABLE x1 ADD INDEX(b); 和 ALTER TABLE x1 ADD INDEX(
我在 Firefox 和其他浏览器上遇到嵌套 z-index 的问题,我有一个 div,z-index 为 30000,位于 label 下方> zindex 为 9000。我认为这是由 z-inde
Link to the function image编写了一个函数来查找中枢元素(起始/最低)的索引 排序和旋转数组。我解决了这个问题并正在检查 边缘情况,它甚至适用于索引为零的情况。任何人都可以 解
我正在尝试运行有关成人人口普查数据的示例代码。当我运行这段代码时: X_train, X_test, y_train, y_test = cross_validation.train_test_spl
我最近将我的 index.html 更改为 index.php - 我希望能够进行重定向以反射(reflect)这一点,然后还进行重写以强制 foo.com/index.php 成为 foo.com/
我最近将我的 index.html 更改为 index.php - 我希望能够进行重定向以反射(reflect)这一点,然后还进行重写以强制 foo.com/index.php 成为 foo.com/
我有一个用户定义的函数,如下所示:- def genre(option,option_type,*limit): option_based = rank_data.loc[rank_data[
我有两个巨大的数据框我正在合并它们,但我不想有重复的列,因此我通过减去它们来选择列: cols_to_use=df_fin.columns-df_peers.columns.difference(['
感谢您从现在开始的回答, 我是React Native的新手,我想做一个跨平台的应用所以我创建了index.js: import React from 'react'; import { Co
我知道 not_analyzed 是什么意思。简而言之,该字段不会被指定的分析器标记化。 然而,什么是 NO_NORMS 方法?我看到了文档,但请用简单的英语解释我。什么是索引时间字段和文档提升和字段
我是一名优秀的程序员,十分优秀!