国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

jQuery實現拖拽效果插件的方法

2024-05-06 16:17:28
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了jQuery實現拖拽效果插件的方法,較為詳細的分析了jQuery拖拽效果的實現技巧,需要的朋友可以參考下

本文實例講述了jQuery實現拖拽效果插件的方法。分享給大家供大家參考。具體如下:

下面的jQuery插件允許你通過鼠標右鍵點擊拖動overflow的元素,這個插件可以在移動設備上運行
 

  1. /** 
  2. * jQuery Drag and Scroll 
  3. * 
  4. * Copyright (c) 2012 Ryan Naddy (ryannaddy.com) 
  5. * Dual licensed under the MIT and GPL licenses: 
  6. * http://www.opensource.org/licenses/mit-license.php 
  7. * http://www.gnu.org/licenses/gpl.html 
  8. */ 
  9. (function($){ 
  10. var down = false
  11. var prevX = 0; 
  12. var prevY = 0; 
  13. var x = 0; 
  14. var y = 0; 
  15. var px = 0; 
  16. var py = 0; 
  17. var lastPX = -1; 
  18. var lastPY = -1; 
  19. var $target = null
  20. var $me = null
  21. var $selector = ""
  22. var settings = { 
  23. mouseButton: 3, 
  24. context: false
  25. selectText: false 
  26. }; 
  27. $.fn.dragScroll = function(options){ 
  28. settings = $.extend(settings, options); 
  29. $selector = $(this).selector; 
  30. $(this).contextmenu(function(){ 
  31. return false
  32. }).bind("mousedown touchstart"function(e){ 
  33. $me = $(this); 
  34. e = event.touches ? event.touches[0] : e; 
  35. $target = $(e.target); 
  36. $target = $target.closest($selector); 
  37. if(settings.viewPort){ 
  38. if(!settings.context){ 
  39. $me.contextmenu(function(){ 
  40. return false
  41. }); 
  42. if(!settings.selectText){ 
  43. $me.attr('unselectable''on').css('user-select''none').on('selectstart'false); 
  44. $me = $me.closest($selector); 
  45. if($target && $me.attr("id") != $target.attr("id")){ 
  46. return false
  47. if(e.which == settings.mouseButton || event.touches){ 
  48. $me.css("cursor""move"); 
  49. down = true
  50. px = $me.scrollLeft(); 
  51. py = $me.scrollTop(); 
  52. x = px + e.pageX; 
  53. y = py + e.pageY; 
  54. prevX = x; 
  55. prevY = y; 
  56. return true
  57. }).bind("mouseup touchend"function(e){ 
  58. $me = $(this); 
  59. e = event.touches ? event.touches[0] : e; 
  60. $me.css("cursor""auto"); 
  61. down = false
  62. }).bind("mousemove touchmove"function(e){ 
  63. $me = $(this); 
  64. $me = $me.closest($selector); 
  65. e = event.touches ? event.touches[0] : e; 
  66. if((e.which == settings.mouseButton || event.touches) && down){ 
  67. if(event.touches){ 
  68. event.preventDefault(); 
  69. if($target && $me.attr("id") != $target.attr("id")){ 
  70. return false
  71. $me.css("cursor""move"); 
  72. px = $me.scrollLeft(); 
  73. py = $me.scrollTop(); 
  74. x = px + e.pageX; 
  75. y = py + e.pageY; 
  76. $me.scrollLeft(px + (-(x - prevX))); 
  77. $me.scrollTop(py + (-(y - prevY))); 
  78. prevX = x - (x - prevX); 
  79. prevY = y - (y - prevY); 
  80. if(lastPX == px) 
  81. prevX = x; 
  82. if(lastPY == py) 
  83. prevY = y; 
  84. lastPX = px; 
  85. lastPY = py; 
  86. return true
  87. }); 
  88. return this
  89. })(jQuery); 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 台山市| 岫岩| 镇巴县| 肥城市| 漯河市| 巴马| 仲巴县| 遂溪县| 尼木县| 合江县| 辽源市| 汨罗市| 长顺县| 富民县| 京山县| 珲春市| 象山县| 沂源县| 左权县| 曲水县| 三原县| 玉山县| 西峡县| 曲沃县| 正定县| 昌邑市| 福贡县| 滨海县| 三门峡市| 丹凤县| 阳江市| 内江市| 荣成市| 杭锦旗| 永宁县| 荆门市| 武城县| 富宁县| 崇礼县| 濮阳县| 邮箱|