❶ js 手機屏上兩根手指放大縮小圖片(類似app圖片放大縮小效果)
網路有個touch.js,支持各種手勢,包括縮放pinch事件,pinchin是縮小,pinchout是放大。
❷ JS移動端獲取觸控位置
1、如抄圖位置是一個html中的可編輯內容的div標簽,在里邊輸入文字,會有一個游標。
❸ swiper插件 滑動到某屏時,如何處理的函數
1、如果是在pc端,想切換到第三頁,可以直接點擊底部的第三個小圓圈,想點擊按鈕跳到「第三頁」,直接模擬點擊第三個小圓圈就可以,可以寫:$('.swiperpaginationspan').eq(2).trigger('click');
❹ 怎麼製作html5手機頁面
1、打開網路,在網路上搜索:易企秀,然後點擊搜索,在搜索的結果中點擊進入易企秀的官方網站。
❺ 在手機上運行three.js 庫出錯
在一些簡單的webgl項目中,我們經常碰到的操作就是兩指縮放,滑動旋轉,這兩種操作經常要進行PC和手機的適配,這里總結一下我踩了的一些小小的坑吧~
1.手機與PC獲取屏幕對應點擊位置的方法不同:
手機是觸摸獲取位置,PC是點擊滑鼠獲取位置兩者的代碼略有不同,這與threejs構建的3D世界沒有關系,僅僅是將點擊/觸摸的位置轉換為窗體位置罷了,我在下面總結一下:
PC點擊位置:
mouse.x = ( event.clientX / window.innerWidth ) * 2 - 1;
mouse.y = - ( event.clientY / window.innerHeight ) * 2 + 1;手機觸摸位置:
mouse.x = (event.touches[ 0 ].pageX / window.innerWidth) * 2 -1;
mouse.y = -(event.touches[ 0 ].pageY / window.innerHeight) *2 +1;2.手機和電腦移動方式的不同:
大家都知道,滑鼠和觸摸都分為點擊/按下、移動/滑動、抬起這三個階段,這里就有一個小坑了!點擊抬起手機電腦的操作方式都是一樣的,但是移動這塊,電腦中滑鼠點擊之後到下次點擊滑鼠的移動會不斷觸發onDocumentMouseMove方法,也就是說滑鼠不可能點擊(0,0)位置,突然下一次移動到(10,10)位置,因為期間還有一個滑鼠移動事件不斷地觸發。而手機則不同,這次你點擊了(0,0)下次點擊(10,10)就在正常不過了,我們也不需要手指在屏幕上進行滑動。那是這些有什麼用呢?
這里就不得不提到我最近做的一個小的程序,用threejs實現3D地球展示,當手指滑動/滑鼠拖動時旋轉地球,我用的方法是,每次移動獲得x/y的值,減去上次移動的值,得到這次滑動的偏移量然後旋轉地球,這個效果在PC上沒有任何問題,可是到了手機上,每次滑動完屏幕,下次滑動時地球又嗖的一下跳回去了,然後我想了半天才發現是這個原因,手機在滑動完成之後,下一次滑動點擊位置不同,x/y的差值太大了,所以需要在每次點擊時就先儲存到上次移動的值~下面是代碼
function onDocumentMouseDown( event ) {
is_click = true;
is_mo
❻ 手機端如何用JS實現觸屏
//html5新增touch事件
//禁用手機默認的觸屏滾動行為
document.addEventListener('touchmove',function(event){
event.preventDefault();
},false);
//touchstart事件
functiontouchSatrtFunc(evt){
try{
//evt.preventDefault();//阻止觸摸時瀏覽器的縮放、滾動條滾動等
vartouch=evt.touches[0];//獲取第一個觸點
varx=Number(touch.pageX);//頁面觸點X坐標
vary=Number(touch.pageY);//頁面觸點Y坐標
//記錄觸點初始位置
startX=x;
startY=y;
}catch(e){
alert('touchSatrtFunc:'+e.message);
}
}
//touchmove事件,這個事件無法獲取坐標
functiontouchMoveFunc(evt){
try{
//evt.preventDefault();//阻止觸摸時瀏覽器的縮放、滾動條滾動等
vartouch=evt.touches[0];//獲取第一個觸點
varx=Number(touch.pageX);//頁面觸點X坐標
vary=Number(touch.pageY);//頁面觸點Y坐標
//document.getElementById("version").innerHTML="原:"+startY+""+"現:"+y;
//判斷滑動方向
if(y-startY>100){
swipeDown();
}elseif(y-startY<-100){
swipeUp();
}
}catch(e){
alert('touchMoveFunc:'+e.message);
}
}
//touchend事件
functiontouchEndFunc(evt){
try{
//evt.preventDefault();//阻止觸摸時瀏覽器的縮放、滾動條滾動等
}catch(e){
alert('touchEndFunc:'+e.message);
}
}
//綁定事件
functionbindEvent(){
document.addEventListener('touchstart',touchSatrtFunc,false);
document.addEventListener('touchmove',touchMoveFunc,false);
document.addEventListener('touchend',touchEndFunc,false);
}
//判斷是否支持觸摸事件
functionisTouchDevice(){
//document.getElementById("version").innerHTML=navigator.appVersion;
try{
document.createEvent("TouchEvent");
//alert("支持TouchEvent事件!");
bindEvent();//綁定事件
}catch(e){
alert("不支持TouchEvent事件!"+e.message);
}
}
❼ js 判斷雙手指滑動 應該說是:在vue中如何實現 對div 雙手指的放大和縮小功能。
綁定觸摸事件 touchstart touchmove
監聽觸摸事件event.touches中觸摸點的數量
在touchmove事件做判定,如果 event.touches.length==2 則記錄此次兩點之間的距離:Math.sqrt(Math.pow((x2-x1),2)+Math.pow((y2-y1),2))
在手指移動過程中針對每一次的兩點距離進行比較。如果相對上次較大則放大,否則縮小。div的縮放通過transform:scale(x)進行控制