jQuery實現(xiàn)拖拽效果插件的方法
更新時間:2015年03月23日 11:50:40 作者:work24
這篇文章主要介紹了jQuery實現(xiàn)拖拽效果插件的方法,較為詳細的分析了jQuery拖拽效果的實現(xiàn)技巧,需要的朋友可以參考下
本文實例講述了jQuery實現(xiàn)拖拽效果插件的方法。分享給大家供大家參考。具體如下:
下面的jQuery插件允許你通過鼠標右鍵點擊拖動overflow的元素,這個插件可以在移動設備上運行
/** * jQuery Drag and Scroll * * Copyright (c) 2012 Ryan Naddy (ryannaddy.com) * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html */ (function($){ var down = false; var prevX = 0; var prevY = 0; var x = 0; var y = 0; var px = 0; var py = 0; var lastPX = -1; var lastPY = -1; var $target = null; var $me = null; var $selector = ""; var settings = { mouseButton: 3, context: false, selectText: false }; $.fn.dragScroll = function(options){ settings = $.extend(settings, options); $selector = $(this).selector; $(this).contextmenu(function(){ return false; }).bind("mousedown touchstart", function(e){ $me = $(this); e = event.touches ? event.touches[0] : e; $target = $(e.target); $target = $target.closest($selector); if(settings.viewPort){ if(!settings.context){ $me.contextmenu(function(){ return false; }); } } if(!settings.selectText){ $me.attr('unselectable', 'on').css('user-select', 'none').on('selectstart', false); } $me = $me.closest($selector); if($target && $me.attr("id") != $target.attr("id")){ return false; } if(e.which == settings.mouseButton || event.touches){ $me.css("cursor", "move"); down = true; } px = $me.scrollLeft(); py = $me.scrollTop(); x = px + e.pageX; y = py + e.pageY; prevX = x; prevY = y; return true; }).bind("mouseup touchend", function(e){ $me = $(this); e = event.touches ? event.touches[0] : e; $me.css("cursor", "auto"); down = false; }).bind("mousemove touchmove", function(e){ $me = $(this); $me = $me.closest($selector); e = event.touches ? event.touches[0] : e; if((e.which == settings.mouseButton || event.touches) && down){ if(event.touches){ event.preventDefault(); } if($target && $me.attr("id") != $target.attr("id")){ return false; } $me.css("cursor", "move"); px = $me.scrollLeft(); py = $me.scrollTop(); x = px + e.pageX; y = py + e.pageY; $me.scrollLeft(px + (-(x - prevX))); $me.scrollTop(py + (-(y - prevY))); prevX = x - (x - prevX); prevY = y - (y - prevY); if(lastPX == px) prevX = x; if(lastPY == py) prevY = y; lastPX = px; lastPY = py; } return true; }); return this; } })(jQuery);
希望本文所述對大家的jQuery程序設計有所幫助。
相關文章
easyui datagrid 表格中操作欄 按鈕圖標不顯示的解決方法
下面小編就為大家?guī)硪黄猠asyui datagrid 表格中操作欄 按鈕圖標不顯示的解決方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07jQuery+Ajax+PHP+Mysql實現(xiàn)分頁顯示數據實例講解
這是一個典型的Ajax應用,在頁面上,您只需要點擊“下一頁”,數據區(qū)將自動加載對應頁碼的數據,重新刷新數據區(qū)。類似的效果在很多網站上應用,尤其在一些需要展示大量圖片數據的網頁如淘寶商品列表頁,Ajax分頁效果讓您的網站數據加載顯得非常流暢。2015-09-09JQuery單選按鈕Radio和復選框checkbox的操作代碼
這篇文章主要介紹了JQuery單選按鈕Radio和復選框checkbox的操作,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04Jquery中的offset()和position()深入剖析
jquery 中有兩個獲取元素位置的方法offset()和position(),這兩個方法之間有什么異同?使用的時候應該注意哪些問題?什么時候使用offset(),什么時候又使用position()呢?2009-05-05jQuery實現(xiàn)模擬搜索引擎的智能提示功能簡單示例
這篇文章主要介紹了jQuery實現(xiàn)模擬搜索引擎的智能提示功能,結合實例形式分析了jQuery基于事件響應及頁面元素屬性動態(tài)操作實現(xiàn)的模擬搜索提示相關操作技巧,需要的朋友可以參考下2019-01-01jcarousellite.js 基于Jquery的圖片無縫滾動插件
基于Jquery的圖片無縫滾動插件,需要的朋友可以參考下。2010-12-12