имеется функции загрузки модели
var canvas = document.querySelectorAll(".cv").forEach(el =>
el.addEventListener('click',loadModel(), false));
var viewer = new JSC3D.Viewer(canvas);
var logoTimerID = 0;
function loadModel() {
if(logoTimerID > 0) {
clearInterval(logoTimerID);
logoTimerID = 0;
viewer.enableDefaultInputHandler(true);
}
var models = document.getElementById('model_list');
viewer.replaceSceneFromUrl('models/' + models[models.selectedIndex].innerHTML);
viewer.update();
}
она выводит модель без проблем, но при дублировании html-кода по выводу модели,
<div class=”Area” id="main_frame">
<div id="statistics"></div>
<div style="text-align:center;">
<div id="loading" style="position:absolute;top: 45%; margin-left: 40%; "></div>
</div>
<canvas id="cv" width="1100"; height=550"></canvas>
<div style="float:left; display:none;">
<select id="model_list">
<option>dragon.stl</option>
</select>
<button id="load" onclick="loadModel();">Load</button>
</div>
<div id="position">
<select id="render_mode_list" id="change" onclick="setRenderMode();">
<option>сглаживание</option>
<option>каркас</option>
<option>плоская</option>
<option>вершины</option>
<option>освещение OFF</option>
</select>
</div>
</div>
выводится только одна модель, в дублированную часть кода она отказывается загружаться(в дублированом option находится другая модель)
Не используйте на странице повторяющиеся id
.
function loadModel(btn) {
/* what is this timer? if(logoTimerID > 0) {
clearInterval(logoTimerID);
logoTimerID = 0;
viewer.enableDefaultInputHandler(true);
}*/
var area = btn.closest(".Area");
var models = area.querySelector('.model_list');
var viewer = area.viewer;
if (!viewer) {
var canvas = area.querySelector('canvas');;
viewer = new JSC3D.Viewer(canvas);
area.viewer = viewer;
}
viewer.replaceSceneFromUrl('models/' + models[models.selectedIndex].innerHTML);
viewer.update();
}
<div class=”Area”>
<div class="statistics"></div>
<div style="text-align:center;">
<div class="loading" style="position:absolute;top: 45%; margin-left: 40%; "></div>
</div>
<canvas class="cv" width="1100" height="550"></canvas>
<div style="float:left; display:none; ">
<select class="model_list">
<option>dragon.stl</option>
</select>
<button class="load" onclick="loadModel(this);">Load</button>
</div>
<div class="position">
<select class="render_mode_list " id="change " onclick="setRenderMode(); ">
<option>сглаживание</option>
<option>каркас</option>
<option>плоская</option>
<option>вершины</option>
<option>освещение OFF</option>
</select>
</div>
</div>
пришлось столкнуться с такой ошибкой:
var canvas = document.getElementsByClassName('cv');
this.canvas.addEventListener is not a function
Вот так:
document.querySelectorAll(".cv").forEach(el =>
el.addEventListener('click', function() { loadModel(el); }, false)
);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
подскажите пожалуйста каким образом можно сделать такой круг? Требуется сделать такой графикПроблема в том что надо удобно менять значения?...
Как сделать так, чтоб при наведении на некоторый текст, он изменялся, а при уходе курсора с него он становился таким, каким был до наведения...