Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当其他元素出现或消失时,平滑更改HTML元素位置的通用方法_Javascript_Css - Fatal编程技术网

Javascript 当其他元素出现或消失时,平滑更改HTML元素位置的通用方法

Javascript 当其他元素出现或消失时,平滑更改HTML元素位置的通用方法,javascript,css,Javascript,Css,我对web开发没有足够的了解,无法判断我的问题是否已经得到了回答,因此,如果这是重复的,我深表歉意 我计划在我的网站上有很多不同的页面,所有页面的结构都不同,所有这些页面都需要在各种不同的屏幕大小上看起来合理。这些页面将包括和/或链接到代码,使各种内容位出现和消失。然而,在其中的一些页面上,我发现有太多的东西一下子出现和消失,读者对到底发生了什么变化感到困惑。为了解决这个问题,我想编写一些CSS或JS,以确保当元素的位置发生变化时,它能够平稳地移动到新的位置,而不是跳转到新的位置。希望这能帮助最

我对web开发没有足够的了解,无法判断我的问题是否已经得到了回答,因此,如果这是重复的,我深表歉意

我计划在我的网站上有很多不同的页面,所有页面的结构都不同,所有这些页面都需要在各种不同的屏幕大小上看起来合理。这些页面将包括和/或链接到代码,使各种内容位出现和消失。然而,在其中的一些页面上,我发现有太多的东西一下子出现和消失,读者对到底发生了什么变化感到困惑。为了解决这个问题,我想编写一些CSS或JS,以确保当元素的位置发生变化时,它能够平稳地移动到新的位置,而不是跳转到新的位置。希望这能帮助最终用户更好地理解内容是如何变化的

我目前正试图通过CSS使用一个应用于“position”属性的“transition”来实现这一点,但没有效果。代码如下:

功能切换可见性(elementId){
var element=document.getElementById(elementId);
如果(element.style.display==“无”){
element.style.display=null;
}否则{
element.style.display=“无”;
}
}
#lol{
位置:相对位置;
过渡:位置2s;
过渡时间函数:线性;
-webkit转换定时功能:线性;
}

标题
福
酒吧
英雄联盟
点击我

您需要定义元素的高度,
auto
不会设置动画。另外,您不应该使用ID来设置对象的样式,最好使用类,这样您就不会有特殊性问题

下面是一个工作示例,我还添加了
opacity
overflow:hidden
以使项目消失:

功能切换可见性(elementId){
var element=document.getElementById(elementId);
元素.classList.toggle(“隐藏”);
}
.item{
位置:相对位置;
高度:20px;
溢出y:隐藏;
不透明度:1;
过渡:高度0.5s,不透明度0.3s;
过渡时间函数:线性;
-webkit转换定时功能:线性;
}
.隐藏{
身高:0;
不透明度:0;
}

标题
福
酒吧
英雄联盟
点击我

您需要定义元素的高度,
auto
不会设置动画。另外,您不应该使用ID来设置对象的样式,最好使用类,这样您就不会有特殊性问题

下面是一个工作示例,我还添加了
opacity
overflow:hidden
以使项目消失:

功能切换可见性(elementId){
var element=document.getElementById(elementId);
元素.classList.toggle(“隐藏”);
}
.item{
位置:相对位置;
高度:20px;
溢出y:隐藏;
不透明度:1;
过渡:高度0.5s,不透明度0.3s;
过渡时间函数:线性;
-webkit转换定时功能:线性;
}
.隐藏{
身高:0;
不透明度:0;
}

标题
福
酒吧
英雄联盟
点击我

首先,根据W3C
的规定,“显示”不是可设置动画的属性。因此,当您将
显示
更改为
时,或者反之亦然,您无法设置此更改的动画。 但是为了实现您想要的是,您可以使用
height
属性。隐藏元素时,需要将高度设置为0。再加上过渡,就可以了

此外,为了让您在整个应用程序中使用该类,请使用一个类,例如
hidden
,并且无论何时您希望任何元素通过动画隐藏,都将该类添加到该类中。下面是一个相同的工作片段。 此外,为了使上述功能发挥作用,您需要为元素提供一些初始高度,因为过渡无法使用
height:auto

功能切换可见性(elementId){
var element=document.getElementById(elementId);
如果(element.style.height==“0”){
element.classList.remove('hidden');
}否则{
element.classList.add('hidden');
}
}
div.hidden{
-moz过渡:高度0.8s;
-ms转换:高度0.8s;
-o型过渡:高度0.8s;
-webkit过渡:高度0.8s;
过渡:高度0.8s;
身高:0;
溢出:隐藏;
不透明度:0;
}
div{
高度:20px;
不透明度:1;
}

标题
福
酒吧
英雄联盟
点击我

首先,根据W3C
的规定,“显示”不是可设置动画的属性。因此,当您将
显示
更改为
时,或者反之亦然,您无法设置此更改的动画。 但是为了实现您想要的是,您可以使用
height
属性。隐藏元素时,需要将高度设置为0。再加上过渡,就可以了

此外,为了让您在整个应用程序中使用该类,请使用一个类,例如
hidden
,并且无论何时您希望任何元素通过动画隐藏,都将该类添加到该类中。下面是一个相同的工作片段。 此外,为了使上述功能发挥作用,您需要为元素提供一些初始高度,因为过渡无法使用
height:auto

功能切换可见性(elementId){
var element=document.getElementById(elementId);
如果(element.style.height==“0”){
element.classList.remove('hidden');
}否则{
element.classList.add('hidden');
}
}
div.hidden{
-moz过渡:高度0.8s;
-ms转换:高度0.8s;
-o型过渡:高度0.8s;
-webkit过渡:高度0.8s;
过渡:高度0.8s;
身高:0;
溢出:隐藏;
不透明度:0;
}
div{
高度:20px;
不透明度:1;
}

标题
福
酒吧
英雄联盟
点击我

看起来很棒!看起来很棒!看起来很棒,我喜欢淡入/淡出效果:)看起来很棒,我看