Javascript 如何顺利打开div
请帮助我如何顺利打开div。我已经添加了脚本和html代码,它工作得很好,但是div突然打开了。我想顺利地打开我的div“#mapsec”Javascript 如何顺利打开div,javascript,jquery,Javascript,Jquery,请帮助我如何顺利打开div。我已经添加了脚本和html代码,它工作得很好,但是div突然打开了。我想顺利地打开我的div“#mapsec” function showhide() { var div = document.getElementById("mapsec"); if (div.style.display !== "none") { div.style.display = "none"; } else { div.styl
function showhide() {
var div = document.getElementById("mapsec");
if (div.style.display !== "none") {
div.style.display = "none";
}
else {
div.style.display = "block";
}
}
HTML代码
访问我们(地图)
使用display
完全按照它所说的做:显示
或隐藏
元素。您可以使用jQueryshide
和show
函数,但由于您尝试使用标准javascript,我将为您提供另一种解决方案:
<div id="mapsec">
<!-- Your Contents -->
</div>
现在,javascript:
function showhide(){
var div = document.getElementById("mapsec");
if (div.className === "") {
div.className = "active";
} else {
div.className = "";
}
}
<div id="mapsec" class="hidden">
<!-- Your Contents -->
</div>
.hidden {
max-height: 0;
overflow: hidden;
transition: max-height 500ms;
}
.hidden.active {
max-height: 1000px;
}
function showhide(id){
var div = document.getElementById(id);
if (div.className === "hidden") {
div.className = "hidden active";
} else {
div.className = "hidden";
}
}
我们使用的是CSS3的内置动画来触发看起来更平滑的东西。我们隐藏要设置动画的框的溢出
,因为您希望它不可见。然后我们还将其max height
设置为0
,因此它看起来没有任何height
(我想补充一点,这里不包括任何填充
和边距
,可能还需要重置)
现在,我们只需将active
类添加到div中即可为其设置动画
以下是CSS和javascript的改进、更通用和可重用版本:
function showhide(){
var div = document.getElementById("mapsec");
if (div.className === "") {
div.className = "active";
} else {
div.className = "";
}
}
<div id="mapsec" class="hidden">
<!-- Your Contents -->
</div>
.hidden {
max-height: 0;
overflow: hidden;
transition: max-height 500ms;
}
.hidden.active {
max-height: 1000px;
}
function showhide(id){
var div = document.getElementById(id);
if (div.className === "hidden") {
div.className = "hidden active";
} else {
div.className = "hidden";
}
}
现在,toggleClass
将添加active
类并将其自身删除!这更好,因为当您使用多个类时,jQuery将保持它们不变(请注意,我们实际上不再需要在此代码中使用隐藏的?只要它已经隐藏了,我们就可以不使用它。)
函数显示隐藏(id){
var div=document.getElementById(id);
如果(div.className==“隐藏”){
div.className=“隐藏活动”;
}否则{
div.className=“隐藏”;
}
}
.hidden{
最大高度:0;
溢出:隐藏;
/*您应该为以下内容添加前缀:*/
过渡段:最大高度500ms;
}
.hidden.active{
最大高度:1000px;
}
使用display
完全按照它所说的做:显示
或隐藏
元素。您可以使用jQueryshide
和show
函数,但由于您尝试使用标准javascript,我将为您提供另一种解决方案:
<div id="mapsec">
<!-- Your Contents -->
</div>
现在,javascript:
function showhide(){
var div = document.getElementById("mapsec");
if (div.className === "") {
div.className = "active";
} else {
div.className = "";
}
}
<div id="mapsec" class="hidden">
<!-- Your Contents -->
</div>
.hidden {
max-height: 0;
overflow: hidden;
transition: max-height 500ms;
}
.hidden.active {
max-height: 1000px;
}
function showhide(id){
var div = document.getElementById(id);
if (div.className === "hidden") {
div.className = "hidden active";
} else {
div.className = "hidden";
}
}
我们使用的是CSS3的内置动画来触发看起来更平滑的东西。我们隐藏要设置动画的框的溢出
,因为您希望它不可见。然后我们还将其max height
设置为0
,因此它看起来没有任何height
(我想补充一点,这里不包括任何填充
和边距
,可能还需要重置)
现在,我们只需将active
类添加到div中即可为其设置动画
以下是CSS和javascript的改进、更通用和可重用版本:
function showhide(){
var div = document.getElementById("mapsec");
if (div.className === "") {
div.className = "active";
} else {
div.className = "";
}
}
<div id="mapsec" class="hidden">
<!-- Your Contents -->
</div>
.hidden {
max-height: 0;
overflow: hidden;
transition: max-height 500ms;
}
.hidden.active {
max-height: 1000px;
}
function showhide(id){
var div = document.getElementById(id);
if (div.className === "hidden") {
div.className = "hidden active";
} else {
div.className = "hidden";
}
}
现在,toggleClass
将添加active
类并将其自身删除!这更好,因为当您使用多个类时,jQuery将保持它们不变(请注意,我们实际上不再需要在此代码中使用隐藏的?只要它已经隐藏了,我们就可以不使用它。)
函数显示隐藏(id){
var div=document.getElementById(id);
如果(div.className==“隐藏”){
div.className=“隐藏活动”;
}否则{
div.className=“隐藏”;
}
}
.hidden{
最大高度:0;
溢出:隐藏;
/*您应该为以下内容添加前缀:*/
过渡段:最大高度500ms;
}
.hidden.active{
最大高度:1000px;
}
这将很好地简化div,而不是:
div.style.display = "block";
这将很好地简化div,而不是:
div.style.display = "block";
使用:
使用:
使用jQuery有几种方法。例如:
function showhide() {
$('#mapsec').slideToggle(200);
}
这将滑动div打开或关闭。200是动画的速度(以毫秒为单位)
看看这些:
$('#mapsec')。切换(200)代码>-
$(“#映射秒”)。滑动切换(200)代码>-
$('#mapsec')。fadeToggle(200)代码>-
使用jQuery有几种方法。例如:
function showhide() {
$('#mapsec').slideToggle(200);
}
这将滑动div打开或关闭。200是动画的速度(以毫秒为单位)
看看这些:
$('#mapsec')。切换(200)代码>-
$(“#映射秒”)。滑动切换(200)代码>-
$('#mapsec')。fadeToggle(200)代码>-
我基本上同意,但是因为你在里面设置了一个有图像的div动画,所以我会设置div高度的动画,并将图像高度设置为100%。我觉得这样看起来更好/更平滑。JS更改类来自,但CSS是:
#mapsec {
height: 0;
overflow: hidden;
-webkit-transition: height 500ms;
transition: height 500ms;
}
#mapsec.active {
height: 200px;
}
#mapsec img {
height: 100%;
width: 100%;
}
我基本上同意,但是因为你在里面设置了一个有图像的div动画,所以我会设置div高度的动画,并将图像高度设置为100%。我觉得这样看起来更好/更平滑。JS更改类来自,但CSS是:
#mapsec {
height: 0;
overflow: hidden;
-webkit-transition: height 500ms;
transition: height 500ms;
}
#mapsec.active {
height: 200px;
}
#mapsec img {
height: 100%;
width: 100%;
}
使用css3转换而不是jQuery/Javascript动画使用css3转换而不是jQuery/Javascript动画此解决方案不如硬编码div的高度。在我的解决方案中使用max height
like将允许div缩放到其预期大小(只要其高度小于2000px),这意味着您可以轻松地重用代码。现在,我承认2000px可能有点大(所以动画看起来几乎是瞬间的),但它确实可以工作并且是可伸缩的。你是100%对的。特别是在他的情况下,我会为了美丽而牺牲普遍性。没错,但唯一的问题是,如果这个网站能够响应,图像的高度可能会随着宽度的变化而变化。我发现如果盒子底部没有一堆空白,因为高度是硬编码的,那就更漂亮了。但那只是我。我同意,请不要误解我的意思。您可以看到基于图像比率的响应版本。此解决方案不如您硬编码div的高度。在我的解决方案中使用类似的max height
将允许div