Javascript 在a球体的上方显示鼠标文本

Javascript 在a球体的上方显示鼠标文本,javascript,aframe,Javascript,Aframe,这是我正在为360图像库调整的代码: 以下是MCV版本: 我有一个链接模板: <script id="link" type="text/html"> <a-entity class="link" hover-text="value: I am hovered." rotation="-45 0 0" position="-4 0 0" geometry="pri

这是我正在为360图像库调整的代码:

以下是MCV版本:

我有一个链接模板:

<script id="link" type="text/html">
          <a-entity class="link"
            hover-text="value: I am hovered."
            rotation="-45 0 0"
            position="-4 0 0"
            geometry="primitive: sphere; radius: .5"
            material="shader: flat; src: ${thumb};"
            event-set__1="_event: mousedown; scale: 1 1 1"
            event-set__2="_event: mouseup; scale: 1.2 1.2 1"
            event-set__3="_event: mouseenter; scale: 1.2 1.2 1"
            event-set__4="_event: mouseleave; scale: 1 1 1"
            set-image="on: click; target: #image-360; src: ${src}"
            sound="on: click; src: #click-sound"
          ></a-entity>


        </script>

),


但是,除非我没有把悬停文本组件放在正确的位置,否则我无法让它工作。有什么建议吗?谢谢。

使用
,而不是
内容

el.setAttribute('text',{content:data.content})


您还可以使用
event-set\uuuutext=“\u event:mouseenter;text.value:'Hello'”
event-set\utext=“\u event:mouseenter;\u target:#someText;text.value:“Hello”
确实无法让它工作,但下面是它工作的原因:

添加此脚本(以实体为目标)并切换其不透明度:

<script>
      document.querySelector('a-scene').addEventListener('enter-vr', function () {
        var link = document.querySelector('.bottom-left').style.visibility = "hidden";
      });
      document.querySelector('.target').addEventListener('mouseenter', function () {
        var toggle = document.querySelector('.toggle').setAttribute('opacity', 100);
        var text = document.querySelector('.text').setAttribute('opacity', 100);
      });
      document.querySelector('.target').addEventListener('mouseleave', function () {
        setTimeout(function () {
          var toggle = document.querySelector('.toggle').setAttribute('opacity', 0);
          var text = document.querySelector('.text').setAttribute('opacity', 0);
        }, 100);
      });

而viola…只需要为每件事创建一个新的平面、脚本和目标。它并不干净,但对没有javaScript经验的人来说是有效的。

首先,我链接了代码。其次,我在帖子中编辑了重要的部分。所以收回否决票。谢谢凯文!我尝试将悬停文本脚本更改为value而不是content并将悬停文本放在单个链接中,但这不起作用。然后我删除了脚本并尝试了事件集并将其放入链接模板中?也不起作用,但这可能是因为我不知道事件集的工作原理。这是我正试图开始工作的迷你版本,希望…如果你能看到我是否将你的code right
#someText
通过您需要创建的用于保存文本的ID指向实体。我为图像链接实体添加了someText ID。没有文本仍然显示。
<script>
      document.querySelector('a-scene').addEventListener('enter-vr', function () {
        var link = document.querySelector('.bottom-left').style.visibility = "hidden";
      });
      document.querySelector('.target').addEventListener('mouseenter', function () {
        var toggle = document.querySelector('.toggle').setAttribute('opacity', 100);
        var text = document.querySelector('.text').setAttribute('opacity', 100);
      });
      document.querySelector('.target').addEventListener('mouseleave', function () {
        setTimeout(function () {
          var toggle = document.querySelector('.toggle').setAttribute('opacity', 0);
          var text = document.querySelector('.text').setAttribute('opacity', 0);
        }, 100);
      });
  <a-plane class="toggle" color="#2582EF" height="1.25" width="2.5" scale="0.8 0.8 0.8" rotation="0 -90 0" 
               position="3 -5 .3" opacity="0" visible="true" material="color:#2582EF;opacity:0" geometry="primitive:plane;height:1.25;width:2.5">
        <a-text class="text" text="anchor:align;width:4.5;color:#FFFFFF;align:center;opacity:0;font:https://cdn.aframe.io/fonts/Exo2SemiBold.fnt;
                                   value:Hey" 
                letterspacing="1.3" width="4.5" color="#FFFFFF" align="center" opacity="0" scale="0.5 0.5 0.5" 
                position="0 0 0" rotation="0 0 0" visible="true">
        </a-text>
      </a-plane> 
class="target"