麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 語言 > JavaScript > 正文

javascript實現(xiàn)行拖動的方法

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

這篇文章主要介紹了javascript實現(xiàn)行拖動的方法,涉及javascript鼠標事件及頁面元素的相關操作技巧,需要的朋友可以參考下

本文實例講述了javascript實現(xiàn)行拖動的方法。分享給大家供大家參考。具體如下:

 

 
  1. <!doctype html> 
  2. <html> 
  3. <head> 
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5. <title>行拖動</title> 
  6. <script> 
  7. window.onload = function(){ 
  8. //綁定事件 
  9. var addEvent = document.addEventListener ? function(el,type,callback){ 
  10. el.addEventListener( type, callback, !1 ); 
  11. } : function(el,type,callback){ 
  12. el.attachEvent( "on" + type, callback ); 
  13. //判定對樣式的支持 
  14. var getStyleName= (function(){ 
  15. var prefixes = ['''-ms-','-moz-''-webkit-''-khtml-''-o-']; 
  16. var reg_cap = /-([a-z])/g; 
  17. function getStyleName(css, el) { 
  18. el = el || document.documentElement; 
  19. var style = el.style,test; 
  20. for (var i=0, l=prefixes.length; i < l; i++) { 
  21. test = (prefixes[i] + css).replace(reg_cap,function($0,$1){ 
  22. return $1.toUpperCase(); 
  23. }); 
  24. if(test in style){ 
  25. return test; 
  26. return null
  27. return getStyleName; 
  28. })(); 
  29. var userSelect = getStyleName("user-select"); 
  30. //精確獲取樣式 
  31. var getStyle = document.defaultView ? function(el,style){ 
  32. return document.defaultView.getComputedStyle(el, null).getPropertyValue(style) 
  33. } : function(el,style){ 
  34. style = style.replace(//-(/w)/g, function($, $1){ 
  35. return $1.toUpperCase(); 
  36. }); 
  37. return el.currentStyle[style]; 
  38. var dragManager = { 
  39. y:0, 
  40. dragStart:function(e){ 
  41. e = e || event; 
  42. var handler = e.target || e.srcElement; 
  43. if(handler.nodeName === "TD"){ 
  44. handler = handler.parentNode; 
  45. dragManager.handler = handler; 
  46. if(!handler.getAttribute("data-background")){ 
  47. handler.setAttribute("data-background",getStyle(handler,"background-color")) 
  48. //顯示為可移動的狀態(tài) 
  49. handler.style.backgroundColor = "#ccc"
  50. handler.style.cursor = "move"
  51. dragManager.y = e.clientY; 
  52. if(typeof userSelect === "string"){ 
  53. return document.documentElement.style[userSelect] = "none"
  54. document.unselectable = "on"
  55. document.onselectstart = function(){ 
  56. return false
  57. }, 
  58. draging:function(e){//mousemove時拖動行 
  59. var handler = dragManager.handler; 
  60. if(handler){ 
  61. e = e || event; 
  62. var y = e.clientY; 
  63. var down = y > dragManager.y;//是否向下移動 
  64. var tr = document.elementFromPoint(e.clientX,e.clientY); 
  65. if(tr && tr.nodeName == "TD"){ 
  66. tr = tr.parentNode 
  67. dragManager.y = y; 
  68. if( handler !== tr){ 
  69. tr.parentNode.insertBefore(handler, (down ? tr.nextSibling : tr)); 
  70. }; 
  71. }, 
  72. dragEnd:function(){ 
  73. var handler = dragManager.handler 
  74. if (handler) { 
  75. handler.style.backgroundColor = handler.getAttribute("data-background"); 
  76. handler.style.cursor = "default"
  77. dragManager.handler = null
  78. if(typeof userSelect === "string"){ 
  79. return document.documentElement.style[userSelect] = "text"
  80. document.unselectable = "off"
  81. document.onselectstart = null
  82. }, 
  83. main:function(el){ 
  84. addEvent(el,"mousedown",dragManager.dragStart); 
  85. addEvent(document,"mousemove",dragManager.draging); 
  86. addEvent(document,"mouseup",dragManager.dragEnd); 
  87. var el = document.getElementById("table"); 
  88. dragManager.main(el); 
  89. </script> 
  90. <style> 
  91. .table{width:60%;border: 1px solid red;border-collapse: collapse;} 
  92. .table td{border: 1px solid red;height: 20px;} 
  93. </style> 
  94. </head> 
  95. <body> 
  96. <h1>行拖動</h1> 
  97. <table id="table" class="table"
  98. <tbody> 
  99. <tr><td>1</td><td>One</td><td>dom.require</td></tr> 
  100. <tr id="2" ><td class="2">2</td><td>Two</td><td>ControlJS </td></tr> 
  101. <tr id="3" ><td class="3">3</td><td>Three</td><td>HeadJS</td></tr> 
  102. <tr id="4" ><td class="4">4</td><td>Four</td><td>LAB.js</td></tr> 
  103. <tr id="5" ><td class="5">5</td><td>Five</td><td>$script.js</td></tr> 
  104. <tr id="6" ><td class="6">6</td><td>Six</td><td>NBL.js</td></tr> 
  105. </tbody> 
  106. </table> 
  107. </body> 
  108. </html> 

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

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

圖片精選

主站蜘蛛池模板: 一级做a爱片久久毛片a高清 | 九九色精品 | 日韩精品中文字幕一区二区三区 | 激情大乳女做爰办公室韩国 | 少妇的肉体的满足毛片 | 72pao成人国产永久免费视频 | 港台三级在线观看 | 欧美成人免费在线视频 | 中文字幕专区高清在线观看 | 久久99精品久久久久久国产越南 | 亚洲人成网站免费播放 | 久久久麻豆 | 农村少妇吞精夜夜爽视频 | 国产男女爽爽爽爽爽免费视频 | 一级免费特黄视频 | 蜜桃视频在线观看免费 | 成人精品视频在线 | 亚洲婷婷日日综合婷婷噜噜噜 | 一级免费特黄视频 | 天天夜碰日日摸日日澡性色av | 久久久久久久久久久久久久av | 一区国产在线观看 | 免费国产自久久久久三四区久久 | 毛片免费视频观看 | 久久久久久久一区二区三区 | 国产乱淫a∨片免费观看 | 免费在线观看国产精品 | 亚洲欧洲av在线 | 精品国产99久久久久久宅男i | 久在线播放 | 久久久久久久久久久亚洲 | 亚洲综合视频网 | 黄色av电影在线播放 | 中文字幕在线一 | 免费看污视频在线观看 | 牛牛热这里只有精品 | 国产亚洲精品美女久久久 | 毛毛片在线看 | 国产伊人色 | 国产成人精品一区在线播放 | 91色琪琪电影亚洲精品久久 |