javascript - 使用js创建元素并添加过渡

标签 javascript

我正在用js创建一个宽度为0的html元素 我想将其转换为不同的宽度

这将显示转换(显然不可用)

element.style.transition = "all 0.4s ease";
element.style.width = 0;
alert(123);
element.style.width = 100;

这也行

element.style.width = 0;
setTimeout(open, 1, element); //having the width=100 in the function

这行不通

element.style.width = 0;
element.style.width = 100;

我想知道是否有一些我可以收听的事件 在其触发器上我可以应用新的尺寸并且过渡是可见的

settimeout 基本上是在做我想做的事情,但如果有事件或有不同的方式来执行此操作,我现在更愿意

P.S 对 Jquery 或任何类型的扩展不感兴趣

编辑-->

这里还有一些代码

x: function(){
    document.addEventListener("mousemove", y);

},
y: function(){
  t = document.getElementById("body");  
  d = document.createElement('div');
  d.style.height = 100;
  d.style.width = 100;
  d.style.background ="#f00"
  d.style.position = "absolute";
  d.style.left = Math.floor(Math.random() * 1000);;
  d.style.top = Math.floor(Math.random() * 1000);;
  d.style.transition = "all 5s ease";
  t.appendChild(d);
  setTimeout(z, 100, d);

},
z: function(d){
  d.style.background ="#00f";  
}

将超时设置为 100 个接缝即可工作,将其设置为 10,它会错过一些设置,将其设置为 1,它会错过几乎所有 所以我的结论是,如果我将计时器设置为 1,它会在“某事”发生之前应用新颜色,并且没有过渡,但它是蓝色的 所以我正在寻找这个“东西” 像 addeventlistener("objectcreatedandcanbetransitioned") 那么如何执行上面的 OUT settimer 操作,并通过创建一个对象并在创建下一个对象时开始转换来消除一些作弊

最佳答案

事件列表为here

在下面的代码中,我将宽度设置为零。然后我有一个改变宽度的函数。我在 myBtn 上为 click 事件设置了一个事件监听器,但它可以是上面列表中的任何事件。第二个参数是事件发生时要调用的函数,即 callbackFunc() ,我在其中将宽度更改为 100。

<!DOCTYPE html>
<html>
<body>

<div id="element">My Header</div>

<p>Click the button to see the width change.</p>

<button id="myBtn">Try it</button>



<script>

document.getElementById("myBtn").addEventListener("click", callbackFunc);

var element = document.getElementById("element")
element.style.width = "0px";
element.style.overflow = "hidden";

function callbackFunc() {
   
   element.style.backgroundColor = "blue";
   element.style.width = "100px";
element.style.transition = "all 2s";


element.style.width = "100px";
}
</script>

</body>
</html>

此外,您可能需要 overflow hidden

关于javascript - 使用js创建元素并添加过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42100514/

相关文章:

javascript - 在这种情况下如何处理复选框?

javascript - 如何避免附加多个事件监听器?

javascript - 更改特定 jQuery UI 对象(selectmenu)的样式而不是全部

javascript - 更改现有的 css 属性并通过删除或添加 css 元素来使用它

javascript - 从字符串中的第一句话中获取最多 8 个单词

javascript - Cheerio 获取元素外部 html

Javascript - 读取文本框长度

javascript - jquery如何在href中添加onclick

javascript - React 组件无法读取未定义的属性

javascript - 如何使用 javascript 获取多个 div 高度的总和?