允许在移动设备上拖动threejs globe吗?

时间:2016-08-17 14:30:07

标签: javascript mobile three.js draggable

我有一个使用threejs创建的地球仪。我正在使用轨道控制使其可拖动。我的问题是在触摸设备上拖动不能正常工作。在边缘你根本无法拖动它,在Firefox上你可以水平拖动它但是如果你垂直拖动它会向下滚动而不是拖动。如何允许在移动设备上拖动?

这是我的orbitcontrols代码:

this._controls = new THREE.OrbitControls(this._camera, this._renderer.domElement);
this._controls.rotateSpeed = .08;
this._controls.zoomSpeed = 1.0;
this._controls.enableZoom = false;
this._controls.enablePan = false;
this._controls.enableDamping = true;
this._controls.minDistance = 23.0;
this._controls.maxDistance = 70.0;
this._controls.dampingFactor = 0.1;

2 个答案:

答案 0 :(得分:0)

问题是渲染的DOM元素<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <section id="cd-timeline" class="cd-container"> <div class="cd-timeline-block"> <div class="cd-timeline-img cd-picture"> <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-picture.svg" alt="Picture"> </div> <!-- cd-timeline-img --> <div class="cd-timeline-content"> <h2>Title of section 1</h2> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto, optio, dolorum provident rerum aut hic quasi placeat iure tempora laudantium ipsa ad debitis unde? Iste voluptatibus minus veritatis qui ut.</p> <a href="#0" class="cd-read-more">Read more</a> <span class="cd-date">Jan 14</span> </div> <!-- cd-timeline-content --> </div> <!-- cd-timeline-block --> <div class="cd-timeline-block"> <div class="cd-timeline-img cd-movie"> <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-movie.svg" alt="Movie"> </div> <!-- cd-timeline-img --> <div class="cd-timeline-content"> <h2>Title of section 2</h2> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto, optio, dolorum provident rerum aut hic quasi placeat iure tempora laudantium ipsa ad debitis unde?</p> <a href="#0" class="cd-read-more">Read more</a> <span class="cd-date">Jan 18</span> </div> <!-- cd-timeline-content --> </div> <!-- cd-timeline-block --> <div class="cd-timeline-block"> <div class="cd-timeline-img cd-picture"> <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-picture.svg" alt="Picture"> </div> <!-- cd-timeline-img --> <div class="cd-timeline-content"> <h2>Title of section 3</h2> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Excepturi, obcaecati, quisquam id molestias eaque asperiores voluptatibus cupiditate error assumenda delectus odit similique earum voluptatem doloremque dolorem ipsam quae rerum quis. Odit, itaque, deserunt corporis vero ipsum nisi eius odio natus ullam provident pariatur temporibus quia eos repellat consequuntur perferendis enim amet quae quasi repudiandae sed quod veniam dolore possimus rem voluptatum eveniet eligendi quis fugiat aliquam sunt similique aut adipisci.</p> <a href="#0" class="cd-read-more">Read more</a> <span class="cd-date">Jan 24</span> </div> <!-- cd-timeline-content --> </div> <!-- cd-timeline-block --> <div class="cd-timeline-block"> <div class="cd-timeline-img cd-location"> <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-location.svg" alt="Location"> </div> <!-- cd-timeline-img --> <div class="cd-timeline-content"> <h2>Title of section 4</h2> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto, optio, dolorum provident rerum aut hic quasi placeat iure tempora laudantium ipsa ad debitis unde? Iste voluptatibus minus veritatis qui ut.</p> <a href="#0" class="cd-read-more">Read more</a> <span class="cd-date">Feb 14</span> </div> <!-- cd-timeline-content --> </div> <!-- cd-timeline-block --> <div class="cd-timeline-block"> <div class="cd-timeline-img cd-location"> <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-location.svg" alt="Location"> </div> <!-- cd-timeline-img --> <div class="cd-timeline-content"> <h2>Title of section 5</h2> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Iusto, optio, dolorum provident rerum.</p> <a href="#0" class="cd-read-more">Read more</a> <span class="cd-date">Feb 18</span> </div> <!-- cd-timeline-content --> </div> <!-- cd-timeline-block --> <div class="cd-timeline-block"> <div class="cd-timeline-img cd-movie"> <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/148866/cd-icon-movie.svg" alt="Movie"> </div> <!-- cd-timeline-img --> <div class="cd-timeline-content"> <h2>Final Section</h2> <p>This is the content of the last section</p> <span class="cd-date">Feb 26</span> </div> <!-- cd-timeline-content --> </div> <!-- cd-timeline-block --> </section> <!-- cd-timeline -->listens for mouse and touch events,而Edge使用Pointer Events,Firefox根本不支持触摸事件。至于Touch Events的移动设备应该可以正常工作。

答案 1 :(得分:0)

您是否考虑使用Hammer.js等触摸事件助手?它的主要用途是手势,但我成功地使用了Hammer来解决与简单触摸交互相关的兼容性问题。