亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

jQuery手機瀏覽器中拖拽動作的艱難性分析

2019-11-20 13:13:49
字體:
來源:轉載
供稿:網友

本文實例分析了jQuery手機瀏覽器中拖拽動作的艱難性。分享給大家供大家參考。具體如下:

本想在手機網頁中實現一個如iphone可以隨意拖動的控制按鈕的,但是最后發現竹籃打水一場空,

雖然拖拽動作在手機瀏覽器中司空見慣,但是在手機瀏覽器中,要想實現可以被拖拽的組件,卻是一件不可能的事情。

先來看看在PC網頁中,拖拽動作是怎么做的,

首先,我們有一個按鈕,點擊有動作,一直按著不放,可以隨意拖動,就像iphone可以隨意拖動的控制按鈕一樣,

如上圖的灰色圖層,寫出來也不甚容易,

首先,要把灰色圖層的position屬性變為abosulte,之后在jquery腳本要實現的工作要點,是區分click與mousedown+mouseup這一對動作,因為click本來就等于mousedown+mouseup,但是還好,mousedown一段時間時候,馬上unbind清空圖層對cilck動作的綁定,告訴系統,mousedown之后的動作與click無關,見如下現實代碼:

復制代碼 代碼如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>jqdrag</title> 
<meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no"> 
<script type="text/javascript" src="js/jquery-1.11.1.js"></script> 
</head> 
 
<body> 
<div id="mydiv" style="width:100px; height:100px; background:#999; position:absolute;">out</div> 
</body> 
</html> 
<script type="text/javascript"> 
$(document).ready(function() { 
var timeout ; 
     
    $("#mydiv").mousedown(function(e) { 
        /*相當于mousedown之后立即進行判斷,到底用戶有沒有按下超過1秒,有則判定為長按*/ 
        $("#mydiv").click(function() { 
            $("#mydiv").text("被點擊"); 
        }); 
        timeout = setTimeout(function() { 
            $("#mydiv").text("長按"); 
            /*以下的語句之后,用戶鼠標左鍵放起,則不會判定為click動作*/ 
            $("#mydiv").unbind("click"); 
            $("#mydiv").mousemove(function (e) { 
                /*這里是為了鼠標拖拽圖層移動的時候,鼠標剛好在圖層中間*/ 
                document .getElementById("mydiv").style.left = e.pageX-50 + "px"; 
                document .getElementById("mydiv").style.top = e.pageY-50 + "px"; 
            });  
        }, 1000)         
    }); 
         
    $("#mydiv").mouseup(function() { 
        clearTimeout(timeout); 
        /*這里必須清空mousemove動作,否則圖層會永遠綁定mousemove動作,隨著鼠標移動而移動*/ 
        $("#mydiv").unbind("mousemove"); 
        $("#mydiv").text("out");     
    });  
         
    $("#mydiv").mouseout(function() { 
        clearTimeout(timeout); 
        $("#mydiv").unbind("mousemove"); 
        $("#mydiv").text("out"); 
    }); 
}); 
</script>

之所以還要編寫mouseout事件,與之前的【jQuery實現長按按鈕觸發事件的方法】一文一樣,防止瀏覽器中,涂黑躲過mouseup判定的bug。
以上看起來非常地完美,因為在PC各大瀏覽器測試通過,還完美兼容IE8,實在是美如畫,

但是,一到手機中就問題大了,

僅僅在google瀏覽器中手機調試模式中,還沒有到真機上了,就無法使用了!

jquery的點擊事件在手機瀏覽器中是沒有任何問題的,但是,長按事件卻與手機上系統自帶的右鍵功能發生了沖突,即使換成jquery mobile中的.on("taphold",function (){});事件或者是在上面的mousedown中加入e.preventDefault();IE則用window.event.preventDefault();I禁用手機瀏覽器的自帶的菜單,也只能使長按的功能留存,拖拽是不用想了,因為拖拽最主要的函數就是mousemove動作,手機瀏覽器上根本就不支持mousemove()動作。

于是,有人提出抗議了,可以用jquery ui中的.draggable()與jquerymobile中的swipe事件,實在html5中的拖拽事件??!

然而,上述所有的解決方案都是徒勞無功,

對于jquery ui中的.draggable(),jquerymobile中的swipe事件,html5中的拖拽事件可以用瀏覽器的手機調試模式,發現根本就沒法拖。

希望本文所述對大家的jquery程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
在线a欧美视频| 国产精品久久久久免费a∨大胸| 国内精品模特av私拍在线观看| 韩国精品久久久999| 欧美在线观看网站| 日韩在线播放av| 久久综合久中文字幕青草| 国产亚洲在线播放| 成人午夜激情网| 欧美性猛交xxxx乱大交3| 日韩中文字幕在线视频播放| 黄色成人av网| 538国产精品视频一区二区| 日韩在线www| 在线国产精品播放| 亚洲国产精品久久久| 亚洲精品自拍偷拍| 欧美精品一区二区三区国产精品| 欧美午夜精品久久久久久浪潮| 国产91精品青草社区| 亚洲综合国产精品| 亚洲国产另类久久精品| 亚洲人成在线电影| 久久视频中文字幕| 国产视频精品一区二区三区| 91久久夜色精品国产网站| 亚洲深夜福利网站| 色噜噜国产精品视频一区二区| 国产精品青草久久久久福利99| 最近免费中文字幕视频2019| 精品久久久久久中文字幕| 国产91网红主播在线观看| 国产精品白丝jk喷水视频一区| 久久精品亚洲一区| 成人精品一区二区三区电影免费| 国产精品一区二区三区久久久| 久久精品99无色码中文字幕| 欧美精品生活片| 国产日韩视频在线观看| 日韩中文在线不卡| 亚洲欧美三级伦理| 久久久91精品| 欧美丝袜一区二区三区| 欧美精品18videosex性欧美| 欧美大尺度在线观看| 欧美中文在线观看| 国产精品一区=区| 国产一区二区在线免费| 日日骚久久av| 国产精品久久久久久一区二区| 最近中文字幕mv在线一区二区三区四区| 国产91免费观看| 91精品在线观看视频| 国产午夜精品久久久| 91在线精品视频| 97av视频在线| 国产亚洲a∨片在线观看| 在线视频国产日韩| 国产在线98福利播放视频| 亚洲国产福利在线| 欧美精品www| 国产美女久久精品香蕉69| 亚洲国产成人一区| 青青a在线精品免费观看| 韩国欧美亚洲国产| 国产精品美女www爽爽爽视频| 精品国产一区二区三区久久狼5月| 92国产精品久久久久首页| 97av在线影院| 久久人人97超碰精品888| 亚洲成年人在线| 欧美激情综合色综合啪啪五月| 精品美女国产在线| 国产亚洲精品成人av久久ww| 精品久久久一区二区| 日本久久久久亚洲中字幕| 久久国产加勒比精品无码| 欧美美女15p| 91精品国产精品| 亚洲精品美女久久久久| 亚洲成人免费在线视频| 日本精品在线视频| 在线观看国产精品91| 国产一区红桃视频| 久久久精品国产亚洲| 国产极品精品在线观看| 亚洲一区av在线播放| 国产精品999| 国产精品日韩久久久久| 国产美女精品免费电影| 在线视频欧美日韩精品| 福利精品视频在线| 国产精品久久久久久亚洲影视| 国产色综合天天综合网| 久久久精品2019中文字幕神马| 中文字幕日韩视频| 大桥未久av一区二区三区| 亚洲人成电影网| 色婷婷av一区二区三区在线观看| 久久久久九九九九| 午夜精品免费视频| 久久精品成人欧美大片| 欧美大胆在线视频| 欧美日韩国产区| 在线观看亚洲视频| 国产精品一区二区三区免费视频| 欧美一级免费看| 午夜精品久久久久久久99热| 九九热最新视频//这里只有精品| 国产精品丝袜白浆摸在线| 日韩在线观看免费全集电视剧网站| 91av在线国产| 色综久久综合桃花网| 亚洲精品之草原avav久久| 色哟哟亚洲精品一区二区| 欧美国产乱视频| 欧美久久精品一级黑人c片| 欧美一级片免费在线| 精品国产欧美一区二区五十路| 久久天天躁狠狠躁夜夜av| 亚洲人成电影在线| 91免费福利视频| 欧洲中文字幕国产精品| 国产精品美乳一区二区免费| 欧美成人午夜剧场免费观看| 97视频在线观看播放| 国产精品一区二区久久国产| 精品国产乱码久久久久久天美| 日韩欧美第一页| 中文字幕少妇一区二区三区| 欧美精品videos性欧美| 亚洲精品乱码久久久久久按摩观| 欧美亚洲国产另类| 久久久欧美一区二区| 久久综合久中文字幕青草| 成人字幕网zmw| 国产成人精品久久亚洲高清不卡| 国产精品第三页| 成人国产精品久久久| 欧美日韩一区二区免费视频| 久久免费视频网站| 欧洲美女7788成人免费视频| 97国产suv精品一区二区62| 欧美日韩国产精品专区| 91精品久久久久久久久久另类| 久久香蕉频线观| 97精品国产91久久久久久| 琪琪第一精品导航| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲乱亚洲乱妇无码| 国产亚洲福利一区| 伊人男人综合视频网| 国内精品久久久久久影视8| 国产精品视频不卡| 日韩欧美在线第一页| 国产精品欧美日韩| 亚洲小视频在线| 91精品国产综合久久香蕉| 97成人在线视频| 热99精品只有里视频精品| 欧美日韩国产一区二区三区| 一区国产精品视频| 91经典在线视频| 久久免费高清视频|