Javascript:如果有东西可见,请将其混合
Javascript: If something gets visible blend it in
我想要一些非常具体的东西。我开发了一个框架的虚拟现实体验。
我有很多事件将对象的可见性设置为 "false":
document.getElementById('button').setAttribute('visible', 'false')
现在我的问题是:当它们突然弹出时看起来不太好,但是当我尝试将它们混合在一起时,我需要为所有可见的对象制作动画。我可以制作一个脚本,说明当某些东西可见时它应该融入而不是弹出吗?
使用 A 帧,您需要创建一个动画元素作为 'button' 实体的子元素,然后将 begin 属性设置为命名事件:
<a-entity id="button" material="opacity: 1">
<a-animation attribute="material.opacity"
dur="1000"
to="0"
begin="myEvent"></a-animation>
</a-entity>
...
document.getElementById('button').emit('myEvent');
相关文档:
这只是一个使用 css 转换的简单示例,请注意您可以对同一元素执行多个转换。完整示例在这里 https://jsfiddle.net/9hvede11/
我们有两个(可能更多)classes。在这种情况下,开始时元素有一个 .short
class,然后由于某些事件,它变为 .large
。 transition 属性 是说如何完成从前一个状态的转换。
.short{
width: 100px;
height: 100px;
background-color: green;
}
.large{
transition: width .2s, height 2s, background-color 2s;
height: 200px;
background-color: red;
width: 200px;
}
在纯 Javascript 中你有类似的东西:
button.addEventListener("click", function(){ //some event
var div = document.getElementById("square");
div.className="large"; //change class
});
我想要一些非常具体的东西。我开发了一个框架的虚拟现实体验。 我有很多事件将对象的可见性设置为 "false":
document.getElementById('button').setAttribute('visible', 'false')
现在我的问题是:当它们突然弹出时看起来不太好,但是当我尝试将它们混合在一起时,我需要为所有可见的对象制作动画。我可以制作一个脚本,说明当某些东西可见时它应该融入而不是弹出吗?
使用 A 帧,您需要创建一个动画元素作为 'button' 实体的子元素,然后将 begin 属性设置为命名事件:
<a-entity id="button" material="opacity: 1">
<a-animation attribute="material.opacity"
dur="1000"
to="0"
begin="myEvent"></a-animation>
</a-entity>
...
document.getElementById('button').emit('myEvent');
相关文档:
这只是一个使用 css 转换的简单示例,请注意您可以对同一元素执行多个转换。完整示例在这里 https://jsfiddle.net/9hvede11/
我们有两个(可能更多)classes。在这种情况下,开始时元素有一个 .short
class,然后由于某些事件,它变为 .large
。 transition 属性 是说如何完成从前一个状态的转换。
.short{
width: 100px;
height: 100px;
background-color: green;
}
.large{
transition: width .2s, height 2s, background-color 2s;
height: 200px;
background-color: red;
width: 200px;
}
在纯 Javascript 中你有类似的东西:
button.addEventListener("click", function(){ //some event
var div = document.getElementById("square");
div.className="large"; //change class
});