A-frame 显示鼠标指针和函数

Posted

技术标签:

【中文标题】A-frame 显示鼠标指针和函数【英文标题】:A-frame show mouse pointer with a function 【发布时间】:2021-08-31 17:12:12 【问题描述】:

我目前正在使用一个使用 A 帧 (https://aframe.io) 的场景,我将鼠标指针隐藏在我的场景中。如何创建一些东西,当发出一个函数时,我的鼠标指针会显示,而当另一个函数发生时,我的鼠标指针会隐藏。

目前的错误是我的鼠标指针被隐藏了。我想要这样当一个名为“showPointer”的函数出现时,我的鼠标指针将再次显示,而当一个名为 hidePointer 的函数出现时,我的鼠标指针将再次隐藏。我怎样才能做到这一点。我的职能:

<script>
function hidePointer() 
//hide mouse pointer


function showPointer() 
//show mouse pointer 
 
</script>

【问题讨论】:

看到这个问题:***.com/questions/1071356/… 我猜这个问题的代码与那个问题完全不同,因为我试图在以 3d 而不是 2d 网页呈现的 webvr 环境中显示或隐藏光标。 look-controls="pointerLockEnabled: true;" 有用吗? 不完全是因为我希望能够根据函数显示或隐藏指针,而不是将指针锁保持在隐藏或不隐藏的固定状态,因此它不处于固定状态。跨度> @Aidan Young:为什么会不一样? 【参考方案1】:
<script>
function hidePointer() 
  $('a-scene').canvas.style.cursor='none'

            
function showPointer() 
  $('a-scene').canvas.style.cursor='pointer'
  // replace "pointer" with other style keyword
 
</script>

有关光标样式的更多详细信息,请查看here

请确保 canvas 元素 rm class a-grab-cursor 来自 canvas

用这个$('a-frame').classList.remove("a-grab-cursor")删除

查看详情here

如果您使用“光标”组件,请禁用mouse cursor styles enabled

【讨论】:

【参考方案2】:

const fullBrowserWindow = document.querySelector(`body`);
const popupElement = document.querySelector(`div.popup`);

function hidePointer() 
  fullBrowserWindow.style.cursor = 'none';


function showPointer() 
  fullBrowserWindow.style.cursor = 'default';


popupElement.onmouseenter = (event) => 
  showPointer();
  console.log('Mouse entered the div, Pointer Shown!');
;

popupElement.onmouseleave = (event) => 
  hidePointer();
  console.log('Mouse left the div, Pointer Removed!');
;
body 
  width: 100%;
  height: 500px;
  padding: 0;
  margin: 0;
  cursor: none;
  background-color: #ff0000;

body div.wegbl 
  width: 480px;
  height: 312px;
  background-color: #000000;

body div.popup 
  width: 200px;
  height: 35px;
  background-color: #ffffff;
  position: absolute;
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>No Cursor - on when mouse is over popup</title>
</head>
<body>
    <div class="webgl"></div>
    <div class="popup">Popup Promt? [Y/N]</div>
</body>
</html>

【讨论】:

该代码完美运行,但使用 css 隐藏光标并且不隐藏函数上的光标。我需要使用 javascript 函数隐藏光标。当函数发生时,光标应该被隐藏,当另一个函数发生时,光标应该再次显示。 Javascript 没有隐藏光标的 API(据我所知),它在 css 属性 cursor 中设置为“none”。即使在 A-frame 中,当您应用 look-controls="pointerLockEnabled: true;" 时,他们也会使用 set canvasElement.style.cursor = 'none' 我试图做相反的事情,但是我想一直隐藏我的光标,但是当我点击场景中的一个对象时,会触发一个 2d 弹出窗口。我想知道如何将光标隐藏为默认值,因此当我将鼠标悬停在弹出窗口上时,该弹出窗口是一个具有 Popup1 类的 div,光标应该显示。 检查解决方案,我已更改它。 I want to hide my cursor at all times => 光标:无; css-property 位于 html 页面的 body 元素上(这意味着光标始终隐藏)=> 弹出窗口可以是具有位置的 div:absolute;当 mouseenter/mouseleave 事件在你显示的 div 顶部触发时隐藏光标,请检查修改后的 sn-p。谢谢!

以上是关于A-frame 显示鼠标指针和函数的主要内容,如果未能解决你的问题,请参考以下文章

截图时如何显示鼠标指针,如何带鼠标指针截图,带鼠标指针截图的方法,怎么在截图时把鼠标指针一起截上

如何使Mac上的鼠标指针更大?

苹果笔记本丢失鼠标指针

如何使用画布和javascript同时绘制线条在鼠标指针顶部显示x和y坐标

苹果系统如何设置鼠标指针的大小?

鼠标指针的位置