国产探花免费观看_亚洲丰满少妇自慰呻吟_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程序設計有所幫助。

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

圖片精選

主站蜘蛛池模板: 蓝山县| 穆棱市| 隆安县| 德化县| 淮滨县| 泗洪县| 顺义区| 北碚区| 宁强县| 金华市| 天等县| 清远市| 绍兴市| 昭平县| 蓬莱市| 虞城县| 鹤庆县| 南木林县| 怀宁县| 防城港市| 宁乡县| 东平县| 鄂州市| 贵德县| 鄯善县| 新河县| 贵德县| 黄龙县| 巴东县| 宾阳县| 手游| 南陵县| 台北县| 法库县| 罗江县| 衢州市| 扶沟县| 当涂县| 长宁县| 阜康市| 黑龙江省|