仿蘋果返回首頁按鈕(移動端div拖動 返回首頁)

參考了網(wǎng)上的文章秽梅,然后又完善了一下

大概思路:

1坦喘、實現(xiàn)頁面的拖動效果:首先是明白移動端的touchstart touchmove touchend的用法

2、div移動其實就是它的left 和 top 的移動

3、touchstart 的時候接箫,記錄鼠標的坐標和div的偏移量谜叹,由此可以計算出鼠標和div左側和頂部的距離

4藤抡、touchmove 的時候纺座,記錄新的鼠標坐標,用新的坐標-起點鼠標和偏移量的差值=div需要移動的距離

5捻艳、邊界值限制驾窟,防止div 移出來

6、禁止底層滑動

7认轨、跳轉到首頁或者百度


我的w3cfuns 同篇文章http://www.qdfuns.com/notes/19055/1b91973818e1014978641524cbe3f215.html

dragFn('div1','http://www.baidu.com');

function dragFn(id,path){

var dom = document.getElementById(id);

var flag = false;

var cur = {

x:0,

y:0

}

var skip = 0;

var nx,ny,dx,dy,x,y;

function down(){

flag = true;

var touch;

if(event.touches){

touch = event.touches[0];

}else{

touch = event;

}

cur.x = touch.clientX; // 獲取當點鼠標的坐標

cur.y = touch.clientY;

dx = dom.offsetLeft; // 當前元素距離外層元素的位置

dy = dom.offsetTop;

}

function move(){

event.preventDefault();//阻止觸摸時瀏覽器的縮放绅络、滾動條滾動等

if(flag){

skip = 1;

var touch;

if(event.touches){

touch = event.touches[0];

}else{

touch = event;

}

nx = touch.clientX - cur.x; // 兩個鼠標點的距離

ny = touch.clientY - cur.y;

x = dx + nx;

y = dy + ny;

if(x < 0){

x = 0

}else if(x > document.documentElement.clientWidth - dom.offsetWidth){

x = document.documentElement.clientWidth - dom.offsetWidth

}

if(y < 0){

y = 0

}else if(y > document.documentElement.clientHeight - dom.offsetHeight){

y = document.documentElement.clientHeight - dom.offsetHeight

}

dom.style.left = x +'px';

dom.style.top = y +'px';

return;

}

}

// 鼠標釋放時候的函數(shù)

function end(){

flag = false;

move();

if(skip == 0){ // 判斷是否出發(fā)了touchmove

location.href = path;

}

}

dom.addEventListener('touchstart',function(){

skip = 0;

down();

},false)

dom.addEventListener('touchmove',function(){

move();

},false)

dom.addEventListener('touchend',function(){

end();

},false)

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嘁字,隨后出現(xiàn)的幾起案子恩急,更是在濱河造成了極大的恐慌,老刑警劉巖纪蜒,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衷恭,死亡現(xiàn)場離奇詭異,居然都是意外死亡纯续,警方通過查閱死者的電腦和手機随珠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來猬错,“玉大人窗看,你說我怎么就攤上這事【氤矗” “怎么了显沈?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長逢唤。 經常有香客問我拉讯,道長,這世上最難降的妖魔是什么鳖藕? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任魔慷,我火速辦了婚禮,結果婚禮上著恩,老公的妹妹穿的比我還像新娘院尔。我一直安慰自己纹烹,他們只是感情好,可當我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布召边。 她就那樣靜靜地躺著,像睡著了一般裹驰。 火紅的嫁衣襯著肌膚如雪隧熙。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天幻林,我揣著相機與錄音贞盯,去河邊找鬼。 笑死沪饺,一個胖子當著我的面吹牛躏敢,可吹牛的內容都是我干的。 我是一名探鬼主播整葡,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼件余,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了遭居?” 一聲冷哼從身側響起啼器,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎俱萍,沒想到半個月后端壳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡枪蘑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年损谦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岳颇。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡照捡,死狀恐怖,靈堂內的尸體忽然破棺而出赦役,到底是詐尸還是另有隱情麻敌,我是刑警寧澤,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布掂摔,位于F島的核電站术羔,受9級特大地震影響,放射性物質發(fā)生泄漏乙漓。R本人自食惡果不足惜级历,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望叭披。 院中可真熱鬧寥殖,春花似錦玩讳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粤策,卻和暖如春樟澜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背叮盘。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工秩贰, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人柔吼。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓毒费,卻偏偏與公主長得像,于是被迫代替她去往敵國和親愈魏。 傳聞我的和親對象是個殘疾皇子觅玻,可洞房花燭夜當晚...
    茶點故事閱讀 44,927評論 2 355

推薦閱讀更多精彩內容

  • "use strict";function _classCallCheck(e,t){if(!(e instanc...
    久些閱讀 2,030評論 0 2
  • 第3章 基本概念 3.1 語法 3.2 關鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,128評論 0 21
  • Lua 5.1 參考手冊 by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 13,797評論 0 38
  • 我醒來的時候,聞到的是一股陰濕的氣息蝌戒,睜開眼睛串塑,出乎意料地沒有因為強光而不適,因為眼前光線很暗北苟。這就是一條長長...
    關柳原閱讀 215評論 0 0
  • PH快報是由一群產品愛好者每日編譯producthunt榜單產品而成桩匪。 Luna http://www.produ...
    Product_X閱讀 737評論 7 10