我使用模型查看器的三维模型,我想要移动的三维模型,根据光标的移动。我不知道如何连接属性“相机-控件”中的HTML变量,以便在js中更改它们。到目前为止,我已经用HTML编写了以下内容:
<div class="hero">
<model-viewer src="{% static "images/file_name.glb" %}" alt="3d model"
loading="eager" camera-controls disable-zoom
reveal="auto" auto-rotate rotation-per-second="60deg"
id="model">
</model-viewer>
</div>发布于 2022-08-31 15:26:38
我设法用以下代码解决了这个问题:
const modelViewer = document.getElementById('model');
document.onmousemove = handleMouseMove;
function handleMouseMove(event) {
var eventDoc, doc, body;
event = event || window.event; // IE-ism
// If pageX/Y aren't available and clientX/Y are,
// calculate pageX/Y - logic taken from jQuery.
// (This is to support old IE)
if (event.pageX == null && event.clientX != null) {
eventDoc = (event.target && event.target.ownerDocument) || document;
doc = eventDoc.documentElement;
body = eventDoc.body;
event.pageX = event.clientX +
(doc && doc.scrollLeft || body && body.scrollLeft || 0) -
(doc && doc.clientLeft || body && body.clientLeft || 0);
event.pageY = event.clientY +
(doc && doc.scrollTop || body && body.scrollTop || 0) -
(doc && doc.clientTop || body && body.clientTop || 0 );
}
// Use event.pageX / event.pageY here
x = - (event.pageX / window.innerWidth * 100 - 50)
if(media_change.matches){
x = - (event.pageX / window.innerWidth * 100 - 30)
}
y = - (event.pageY / window.innerHeight * 50) + 120
}https://stackoverflow.com/questions/71902537
复制相似问题