【问题标题】:Toggle button when objects are shown or hidden显示或隐藏对象时的切换按钮
【发布时间】:2017-07-25 05:05:03
【问题描述】:

我在正文上有一个背景图像,然后在图像上方我有一个大框、页脚、导航和页眉。

我正在尝试实现一个链接到一个名为 slideUp 的类的按钮。这个类有一个向上的箭头图像。

当我单击此按钮时,框、页脚、导航和页眉将向上滑动并消失。然后我有另一个按钮,其中包含另一个名为 slideDown 的类,其中我有一个向下箭头的图像。当我点击这个按钮时,一切都会滑下来。

我想使用 if 语句,而不是始终显示两个按钮,当一切都可见时,显示 buttonUp,隐藏 buttonDown,当一切都隐藏时,显示 buttonDown 并隐藏 buttonUp。

第一部分工作正常,它显示 buttonUp 并隐藏 ButtonDown 但“else if”不起作用。在我单击 buttonUp 后,它不会隐藏并且 buttonDown 不会显示。我将 jQuery 用于 slideUp 和 slideDown 功能。

$("button#Up").click(function() {
 $(".box").slideUp("medium");
 $("nav").slideUp("medium");
 $("header").slideUp("medium");
 $("footer").slideUp("medium");
});

$("button#Down").click(function() {
 $(".box").slideDown("medium");
 $("nav").slideDown("medium");
 $("header").slideDown("medium");
 $("footer").slideDown("medium");
});

if ($(".box").is(":visible") && $("nav").is(":visible") && $("header").is(":visible") && $("footer").is(":visible"))
{
  $("button#Up").show("fast");
	$("button#Down").hide("fast");
}
else if ($(".box").is(":hidden") && $("nav").is(":hidden") && $("header").is(":hidden") && $("footer").is(":hidden"))
{
	$("button#Up").hide("fast");
	$("button#Down").show("fast");
}
button.slideUp{
	background-image: url(arrowUp.png);
	background-size: cover;
	background-position: center;
	background-color: #1A1A1A;
	opacity: 0.75;
	height: 41px;
	width: 41px;
	position: fixed;
	right: 2px;
	bottom: 0px;
}

button.slideDown{
	background-image: url(arrowDown.png);
	background-size: cover;
	background-position: center;
	background-color: #1A1A1A;
	opacity: 0.75;
	height: 41px;
	width: 41px;
	position: fixed;
	right: 2px;
	top: 0px;
}
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<button id="Up" class="slideUp"></button>
<button id="Down" class="slideDown"></button>

【问题讨论】:

  • 提供html完整代码
  • 让 sn-p 像你认为的那样工作,这意味着添加页眉和页脚等,这样我们就可以看到发生了什么,或者没有发生
  • 请添加实际内容 - 来自 lorempixel 或类似的图像以创建 minimal reproducible example

标签: javascript jquery html css


【解决方案1】:

你是说这个吗?

$("button#Up").click(function() {
 $(".box").slideUp("medium");
 $("nav").slideUp("medium");
 $("header").slideUp("medium");
 $("footer").slideUp("medium");
 $("button#Down").show();
 $(this).hide();
});

$("button#Down").click(function() {
 $(".box").slideDown("medium");
 $("nav").slideDown("medium");
 $("header").slideDown("medium");
 $("footer").slideDown("medium");
 $("button#Up").show();
 $(this).hide();
});

都可以一键实现,toggleClass和toggleSlide

$("button").on("click",function() {
 $(this).toggleClass("slideUp slideDown");
 $(".box").toggleSlide("medium");
 $("nav").toggleSlide("medium");
 $("header").toggleSlide("medium");
 $("footer").toggleSlide("medium");
});

【讨论】:

  • 感谢它的工作!虽然有没有办法使用 if 语句?只是好奇。
  • 不在事件处理程序之外。您需要在可见性变化的地方添加 if
猜你喜欢
  • 2011-05-30
  • 2020-07-05
  • 2019-09-28
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多