Javascript 如何设置淡入淡出<;a-sky>;
是否可以在帧中的天空中添加淡入或淡出动画 当用户将光标悬停在球上时,如何添加动画 在本例中,当您将鼠标悬停时,背景将更改,但不带动画Javascript 如何设置淡入淡出<;a-sky>;,javascript,html,aframe,virtual-reality,Javascript,Html,Aframe,Virtual Reality,是否可以在帧中的天空中添加淡入或淡出动画 当用户将光标悬停在球上时,如何添加动画 在本例中,当您将鼠标悬停时,背景将更改,但不带动画 AFRAME.registerComponent('set-sky'{ 模式:{ 默认值:“” }, init(){ const sky=document.querySelector('a-sky'); this.el.addEventListener('click',()=>{ setAttribute('src',this.data); }); } });
AFRAME.registerComponent('set-sky'{
模式:{
默认值:“”
},
init(){
const sky=document.querySelector('a-sky');
this.el.addEventListener('click',()=>{
setAttribute('src',this.data);
});
}
});代码>
尝试添加以下内容:
HTML:
sky.setAttribute("style", "-webkit-animation:opac 6s linear forwards";
sky.setAttribute("style", "animation:opac 6s linear forwards";
CSS:
@-webkit-keyframes opac {
0% {opacity: 0;}
100% {opacity: 1;}
}
@keyframes opac {
0% {opacity: 0;}
100% {opacity: 1;}
}
我不会像上面的回答那样使用CSS。A-Frame通常不使用CSS,而是依赖于自己的显示组件和属性
您可以通过设置材质的动画来淡入淡出。或的不透明度,这似乎正在成为标准
如果您使用我推荐的,您可以设置
将ES6功能(如const
和arrow函数)分别转换为var
和function
,以实现更好的兼容性(排除任何不当行为)
在自定义set sky
组件中使用setTimeout
对动画计时。尽管如此,您可能希望改为依赖事件,这对于多个侦听器可能会变得更加复杂。我只是想给你一个初步的例子李>
这是修改后的演示:
实际上,在A-Frame网站上还有一个例子,它几乎完成了您想要做的事情:谢谢您的回答。你知道google map 360使用什么过渡效果/动画吗?不幸的是,我不知道。也许试着做一个交叉淡入淡出(淡出一个,同时淡入另一个),而不是按顺序淡入淡出。你能帮我吗?我还是很困惑
<a-sky src="#sky-1"
animation__fadein="startEvents: fadein; property: material.opacity; from: 0; to: 1; dur: 1000;"
animation__fadeout="startEvents: fadeout; property: material.opacity; from: 1; to: 0; dur: 1000;"></a-sky>