gpt4 book ai didi

javascript - 悬停动画上的 A 框架(mouseleave、mouseenter)

转载 作者:太空宇宙 更新时间:2023-11-04 16:30:14 25 4
gpt4 key购买 nike

我有一个场景,其中有“mouseenter”对象,这些对象会触发其他对象上的操作:

<a-entity class="hover" position="1.3 1.5 0" rotation="0 90 0">
<a-entity mixin="hoverbox"></a-entity>
<a-obj-model src="#profile1" scale="0.01 0.01 0.01" material="height: 512; width: 512" mixin="skybox">
<a-animation attribute="rotation" dur="10000" easing="linear" fill="forwards" to="0 360 0" repeat="indefinite"></a-animation>
<a-animation attribute="position" dur="300" to="0 0 -.5" begin="hoveron"></a-animation>
<a-animation attribute="position" dur="300" to="0 0 0" begin="hoveroff"></a-animation>
</a-obj-model>
</a-entity>

这是悬停框混合:

<a-mixin id="hoverbox" class="hoverbox" material="color:#fff; opacity:.5;" geometry="primitive: sphere; radius: .45;"></a-mixin>

附加了这个 javascript:

var sceneEl = document.querySelector('a-scene');
var hoverEls = sceneEl.querySelectorAll('.hover');
for(var i = 0; i < hoverEls.length; i++) {
var hoverEl = hoverEls[i];
hoverElBox = hoverEl.querySelector('a-entity');
hoverElBox.addEventListener('mouseenter', function(evt) {
// evt.stopPropagation();
console.log('mouseenter', evt);
evt.target.nextElementSibling.emit('hoveron');
}, true);
hoverElBox.addEventListener('mouseleave', function(evt) {
// evt.stopPropagation();
console.log('mouseleave', evt.target.parentNode);
evt.target.nextElementSibling.emit('hoveroff');
}, true);
}

当用户将鼠标悬停在“hoverbox”球体上时,这会触发元素的重新定位。当光标离开悬停框时,它还会触发返回到正常位置。

光标元素如下所示:

<a-entity cursor="fuse:true, fuseTimeout: 50;" raycaster="far: 10; objects: .hoverbox" />

因此它不会在其他对象上发出事件。

但是,这种行为有点错误。有时,当光标移离球体时,不会触发“hoveroff”事件,而其他时候,球体只是不注册 mouseenter。

有人知道如何实现这个功能吗?

在此处查看完整代码:http://vr.dco.rocks/

最佳答案

此问题已在 A-Frame 主分支 https://github.com/aframevr/aframe/commit/e4900e16ea9228af39d2a4fef6798393e79bd82a 上修复尽管代码中仍然存在一些问题。

A-Frame 0.2.0 可能更可靠,也可能不更可靠?

关于javascript - 悬停动画上的 A 框架(mouseleave、mouseenter),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39877412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com