彈框拖動功能 && mouseup事件丟失

對于某區(qū)域的拖動功能主要用到mousedown,mousemove和mouseup事件痹籍,具體代碼如下:

function pauseEvent(e){
    if(e.stopPropagation) e.stopPropagation();
    if(e.preventDefault) e.preventDefault();
    e.cancelBubble=true;
    e.returnValue=false;
    return false;
}
$('.selectMajor .co_tit').mousedown(function(ev){
    var e = ev||event;
    pauseEvent(e);
    var mdX = e.clientX;
    var mdY = e.clientY;
    var ele_top = $('.selectMajor').position().top;
    var ele_left = $('.selectMajor').position().left;
    var ele_width = $('.selectMajor').width();
    var ele_height = $('.selectMajor').height();
    var win_width = $(window).width();
    var win_height = $(window).height();
    // IE8 取消默認行為-設(shè)置全局捕獲
    if ($('.selectMajor .co_tit').setCapture) {
        $('.selectMajor .co_tit').setCapture();
    }
    document.onmousemove = function(ev2) {
        var e2 = ev2||event;
        pauseEvent(e2);
        var mmX = e2.clientX;
        var mmY = e2.clientY;
        var moveX = mmX-mdX;
        var moveY = mmY-mdY;
        var target_top = ((ele_top+moveY) > (win_height-ele_height)) ? (win_height-ele_height) : (ele_top+moveY)
        target_top = target_top < 0 ? 0 : target_top
        var target_left = (ele_left+moveX-400) < 0 ? 400 : ( (ele_left+moveX-400)>(win_width-ele_width) ? (win_width-ele_width+400) : ele_left+moveX )
        $('.selectMajor').css('top',target_top+'px');
        $('.selectMajor').css('left',target_left+'px');
    }
})
document.onmouseup = function() {
    document.onmousemove = null;
    // 釋放全局捕獲
    if ($('.selectMajor .co_tit').releaseCapture) {
        $('.selectMajor .co_tit').releaseCapture();
    }
}

在測試時會發(fā)現(xiàn)呢铆,如果不加pauseEvent方法時,會出現(xiàn)時常mouseup事件丟失的情況蹲缠。具體原因:

  • 觸發(fā)了瀏覽器的 drag 操作棺克,導致mouseup丟失悠垛。
  • 由于鼠標離開了操作的區(qū)域,觸發(fā)了mouseleave導致mouseup丟失逆航。

加的pauseEvent方法就是用來防止觸發(fā)drag操作的鼎文。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市因俐,隨后出現(xiàn)的幾起案子拇惋,更是在濱河造成了極大的恐慌,老刑警劉巖抹剩,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異澳眷,居然都是意外死亡胡嘿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門钳踊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衷敌,“玉大人,你說我怎么就攤上這事拓瞪〗陕蓿” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵祭埂,是天一觀的道長面氓。 經(jīng)常有香客問我,道長蛆橡,這世上最難降的妖魔是什么舌界? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮泰演,結(jié)果婚禮上呻拌,老公的妹妹穿的比我還像新娘。我一直安慰自己粥血,他們只是感情好柏锄,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著复亏,像睡著了一般趾娃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缔御,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天抬闷,我揣著相機與錄音,去河邊找鬼。 笑死笤成,一個胖子當著我的面吹牛评架,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炕泳,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼纵诞,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了培遵?” 一聲冷哼從身側(cè)響起浙芙,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎籽腕,沒想到半個月后嗡呼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡皇耗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年南窗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片郎楼。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡万伤,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出呜袁,到底是詐尸還是另有隱情壕翩,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布傅寡,位于F島的核電站,受9級特大地震影響北救,放射性物質(zhì)發(fā)生泄漏荐操。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一珍策、第九天 我趴在偏房一處隱蔽的房頂上張望托启。 院中可真熱鬧,春花似錦攘宙、人聲如沸屯耸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疗绣。三九已至,卻和暖如春铺韧,著一層夾襖步出監(jiān)牢的瞬間多矮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留塔逃,地道東北人讯壶。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像湾盗,于是被迫代替她去往敵國和親伏蚊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容

  • ??JavaScript 與 HTML 之間的交互是通過事件實現(xiàn)的。 ??事件匀借,就是文檔或瀏覽器窗口中發(fā)生的一些特...
    霜天曉閱讀 3,490評論 1 11
  • 本節(jié)介紹各種常見的瀏覽器事件颜阐。 鼠標事件 鼠標事件指與鼠標相關(guān)的事件,主要有以下一些吓肋。 click 事件凳怨,dblc...
    許先生__閱讀 2,437評論 0 4
  • 本篇博客源地址 總結(jié): 鼠標事件 1.click與dbclick事件ele.click()ele.click(ha...
    ZombieBrandg閱讀 674評論 0 1
  • 總結(jié): 鼠標事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,605評論 2 10
  • 在前端開發(fā)過程中,頁面交互過程和事件機制密不可分是鬼,一直以來對于事件相關(guān)機制了解的不夠深刻肤舞,沒有好好進行了解,最近花...
    Patrick浩閱讀 1,675評論 0 2