javascript - 使隐藏元素显示自身然后使用过渡移动

标签 javascript html css css-transitions contains

我如何修复此代码,使两个元素首先不再隐藏,然后使用过渡平滑地向右移动。当元素没有开始隐藏时它起作用,但当它隐藏时,它只是跳到结束点。如何在不删除隐藏元素并将元素宽度减小为零的情况下完成这项工作?谢谢。

var one = document.getElementById('one');
        var two = document.getElementById('two');
        
        function myFunct() {
            two.style.display = 'flex';
            two.style.right = '70%';
        }
#one {
  position: absolute;
  width: 300px;
  height: 100px;
  border: 1px solid red;    	 
}
#two {
  position: absolute;
  display: none;
  min-width: 5px;
  height: 100%;
  transition: 1.5s;
  -webkit-transition: 1.5s;
  -moz-transition: 1.5s;
  -ms-transition: 1.5s;
  background-color: green;
  right: 0px;
 }
<div id = 'one' onclick = 'myFunct()'>
  <div id = 'two'></div>
</div>  

最佳答案

首先使用opacity: 0 代替display: none 并且使用translateX 代替right 会更好.

我也推荐AnimeJS因为如果你使用一堆动画和过渡,它会使动画和过渡变得容易得多。

关于javascript - 使隐藏元素显示自身然后使用过渡移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55035768/

相关文章:

jquery - 尝试在没有倾斜文本的情况下实现倾斜菜单项。接近了,但 2 层元素正在奇怪地层叠

css - 将列表项中的 div 居中

javascript - 如何使按钮多次更改段落并在最后一次更改段落和按钮文本?

javascript - 如何为包含 SAPUI5 Core API 的函数编写单元测试?

javascript - 我想查看有多少人选择了

html - 中心内联 block Div 不起作用

php - 添加链接到图像 php

javascript - 如何基于数组显示和设置列表样式

javascript - RequestAnimationFrame 调用时间根据我的 Canvas 大小而变化

javascript - 如何为html5 canvas实现rotate方法