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

首頁 > 語言 > JavaScript > 正文

jQuery實現html元素拖拽

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

本文主要給大家分享的是使用jQuery實現html元素可拖拽的效果,十分的炫酷,代碼也相對比較簡單,有需要的小伙伴可以參考下。

代碼很簡單,效果非常棒,直接給大家上源碼:

html

 

 
  1. <div> 
  2. <div class="money-input"
  3. 定投金額 : 
  4. <div class="input-rela"
  5. <input type="text" placeholder="2000"/> 
  6. <span>元</span> 
  7. </div> 
  8.  
  9. </div> 
  10. <div class="money-line"
  11. <img index="js-minus-a" class="js-minus" src="../images/minus.png" alt=""/> 
  12. <img id="dragImg" class="red-rela" src="../images/money-dw.png" alt="" onDrag="drag(event)" onDragEnd="dragEnd(event)" style="left: 265px;"/> 
  13. <img id="dragLine" class="line3" src="../images/money-line.png" alt=""/> 
  14. <img index="js-plus-a" class="js-plus" src="../images/plus.png" alt="" style="margin-left: 880px;"/> 
  15. </div> 
  16. <div class="money-desc"
  17. <span style="margin-left: 65px;">100</span> 
  18. <span>500</span> 
  19. <span>1000</span> 
  20. <span>2000</span> 
  21. <span>3000</span> 
  22. <span>4000</span> 
  23. <span>5000</span> 
  24. <span>6000</span> 
  25. <span>7000</span> 
  26. <span>8000</span> 
  27. <span>9000</span> 
  28. <span>10000</span> 
  29. </div> 
  30. <p>單位:元</p> 
  31. </div> 

css

 

 
  1. .money-input{margin:36px auto 0;width:330px;font-size:14px;color:#818181} 
  2. .input-rela{width:250px;height:42px;display:inline-block;position:relative} 
  3. .input-rela>input{width:inherit;height:38px;border:1px solid #eee} 
  4. .input-rela>span{position:absolute;right:10px;top:13px} 
  5. .money-line{width:970px;margin:60px auto 0;position:relative} 
  6. .line3{position:absolute;left:40px;top:10px} 
  7. .red-rela{position:absolute;top:0;z-index:2;cursor:pointer} 
  8. .money-desc,.month-desc{font-size:12px;color:#818181} 
  9. .money-desc+p,.month-desc+p{margin-right:60px;text-align:right;color:#5a5a5a} 
  10. .money-desc>span{display:inline-block;width:71px} 
  11. .month-desc>span{display:inline-block;width:79px} 

js

 

 
  1. /** 
  2. * Created by cq on 2015/6/15. 
  3. */ 
  4. $(function(){ 
  5.  
  6. $('.js-minus').click(function(){ 
  7. /* min need calculate*/ 
  8. var index = $(this).attr("index"
  9. var move,min; 
  10. if(index=="js-minus-a"){ 
  11. move = 77; 
  12. min = 34; 
  13. if(index=="js-minus-b"){ 
  14. move = 85; 
  15. min = 36; 
  16. var redPoint = $(this).next() 
  17. var left = redPoint.css("left"
  18. var leftInt = left.replace(/px/g,""
  19. if((parseInt(leftInt)-move)>=min){ 
  20. var newLeft = (parseInt(leftInt)-move)+"px" 
  21. redPoint.css("left",newLeft) 
  22. var num = parseInt ( (parseInt(leftInt)-move-min) / move ) 
  23. var input = $(this).parent().prev().find("input"
  24. if(index=="js-minus-a"){ 
  25. var spans = $(this).parent().next().find("span"
  26. var html = spans.eq(num).html() 
  27. input.val(html) 
  28. if(index=="js-minus-b"){ 
  29. input.val(getMonth(num)) 
  30. }) 
  31.  
  32. $('.js-plus').click(function(){ 
  33. /* max and min need calculate*/ 
  34. var index = $(this).attr("index"
  35. var move , max , min ; 
  36. if(index=="js-plus-a"){ 
  37. move = 77; //ÿ??????? 
  38. max = 881; //???????? 
  39. min = 34; //??С????? 
  40. if(index=="js-plus-b"){ 
  41. move = 85; 
  42. max = 886; 
  43. min = 36; 
  44.  
  45. var redPoint = $(this).prev().prev() 
  46. var left = redPoint.css("left"
  47. var leftInt = left.replace(/px/g,""
  48. if((parseInt(leftInt)+move)<=max){ 
  49. var newLeft = (parseInt(leftInt)+move)+"px" 
  50. redPoint.css("left",newLeft) 
  51. var num = parseInt( (parseInt(leftInt)+move-min) / move ) 
  52. var input = $(this).parent().prev().find("input"
  53. if(index=="js-plus-a"){ 
  54. var spans = $(this).parent().next().find("span"
  55. var html = spans.eq(num).html() 
  56. input.val(html) 
  57. if(index=="js-plus-b"){ 
  58. input.val(getMonth(num)) 
  59. }) 
  60.  
  61. /*move img js*/ 
  62. var offsetx = 0, offsety = 0; 
  63. var dragImg = document.getElementById("dragImg"
  64. dragImg.addEventListener("mousedown",beforeDrag,true); 
  65. }) 
  66.  
  67. function beforeDrag(ev){ 
  68. dragImg = ev.target; 
  69. var l = dragImg.offsetLeft; 
  70. var t = dragImg.offsetTop; 
  71. offsetx = ev.clientX - l; 
  72. offsety = ev.clientY - t; 
  73.  
  74. function drag(e){ 
  75. e.preventDefault(); 
  76. /*min need calculate*/ 
  77. var ml = 8,mr = 20,maxy = 70,moveWidth = 77,min=34; 
  78. var dragImg = e.target; 
  79. var dragLine = document.getElementById("dragLine"); 
  80. var movex = e.clientX - offsetx; 
  81. var movey = e.clientY - offsety; 
  82. var minPY = dragLine.offsetLeft-ml; 
  83. var maxPY = dragLine.offsetLeft+dragLine.clientWidth-mr; 
  84. if(Math.abs(movey)>maxy){ 
  85. return 
  86. if(movex<minPY){ 
  87. dragImg.style.left = minPY + "px"
  88. return 
  89. if(movex>maxPY){ 
  90. dragImg.style.left = maxPY + "px"
  91. return 
  92. dragImg.style.left = movex + "px"
  93.  
  94.  
  95. function dragEnd (e){ 
  96. e.preventDefault(); 
  97. /*min need calculate*/ 
  98. var ml = 8,mr = 20,maxy = 70,moveWidth = 77,min=34; 
  99. var dragImg = e.target; 
  100. var dragLine = document.getElementById("dragLine"); 
  101. var movex = e.clientX - offsetx; 
  102. var movey = e.clientY - offsety; 
  103. var minPY = dragLine.offsetLeft-ml; 
  104. var maxPY = dragLine.offsetLeft+dragLine.clientWidth-mr; 
  105.  
  106. if(movex<minPY){ 
  107. dragImg.style.left = minPY + "px"
  108. $(dragImg).parent().prev().find("input").val(100) 
  109. return 
  110. if(movex>maxPY){ 
  111. dragImg.style.left = maxPY + "px"
  112. $(dragImg).parent().prev().find("input").val(10000) 
  113. return 
  114. /*dragEnd xifu*/ 
  115. var num = parseInt ( movex / moveWidth ) 
  116. dragImg.style.left = (min+moveWidth*num) + "px"
  117. /*dragEnd set input*/ 
  118. var thisNode = $(dragImg) 
  119. var spans = thisNode.parent().next().find('span'
  120. var html = spans.eq(num).html() 
  121. var input = thisNode.parent().prev().find("input"
  122. input.val(html) 
  123.  
  124. /* 
  125. function init() { 
  126. document.body.onmousemove = function(e) { 
  127. if (!e) { 
  128. e = window.event; 
  129. } 
  130. else { 
  131. e.srcElement = e.target; 
  132. } 
  133. document.getElementById("divDebug").innerHTML = "mousemove (" + e.clientX + "," + e.clientY + ") srcElement=" + e.srcElement.tagName + "[" + e.srcElement.id + "]"; 
  134. } 
  135. }*/ 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

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

圖片精選

主站蜘蛛池模板: 那坡县| 康平县| 济南市| 左权县| 乌什县| 霍山县| 鸡泽县| 溧水县| 驻马店市| 建昌县| 济源市| 江油市| 彝良县| 克拉玛依市| 温宿县| 钟祥市| 海阳市| 涟水县| 新巴尔虎左旗| 武城县| 久治县| 谷城县| 本溪| 平和县| 阜康市| 正镶白旗| 西乡县| 健康| 苏州市| 同江市| 怀柔区| 娱乐| 汾西县| 奈曼旗| 甘肃省| 固镇县| 百色市| 杂多县| 措美县| 墨玉县| 来宾市|