经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
JS实现拖拽进度条改变元素透明度
来源:jb51  时间:2021/10/19 19:16:37  对本文有异议

今天要分享的是运用原生JS拖拽进度条改变元素透明度,效果如下:

以下是代码实现,欢迎大家复制粘贴。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>原生JS拖拽进度条改变元素透明度</title>
  6. <style>
  7. #parent {
  8. width: 400px;
  9. height: 20px;
  10. background: #CCC;
  11. position: relative;
  12. margin: 20px auto;
  13. }
  14. #div1 {
  15. width: 20px;
  16. height: 20px;
  17. background: red;
  18. cursor: pointer;
  19. position: absolute;
  20. }
  21. #div2 {
  22. width: 300px;
  23. height: 300px;
  24. margin: 0 auto;
  25. filter: alpha(opacity:0);
  26. opacity: 0;
  27. background: yellow;
  28. }
  29. </style>
  30. <script>
  31. window.onload = function () {
  32. var oDiv = document.getElementById('div1');
  33. var oParent = document.getElementById('parent');
  34. var oDiv2 = document.getElementById('div2');
  35. oDiv.onmousedown = function (ev) {
  36. var oEvent = ev || event;
  37. //计算鼠标相对滑块上的位置
  38. var disX = oEvent.clientX - oDiv.offsetLeft;
  39. document.onmousemove = function (ev) {
  40. var oEvent = ev || event;
  41. //计算滑块的动态left值
  42. var l = oEvent.clientX - disX;
  43. //限制拖拽范围
  44. if (l < 0) {
  45. l = 0;
  46. } else if (l > oParent.offsetWidth - oDiv.offsetWidth) {
  47. l = oParent.offsetWidth - oDiv.offsetWidth;
  48. }
  49. oDiv.style.left = l + 'px';
  50. //计算拖拽移动距离与可拖动总范围的比例
  51. var scale = l / (oParent.offsetWidth - oDiv.offsetWidth);
  52. //让Div2跟随鼠标的拖动逐渐显示与隐藏
  53. oDiv2.style.filter = 'alpha(opacity:' + 100 * scale + ')';
  54. oDiv2.style.opacity = scale;
  55. };
  56. document.onmouseup = function () {
  57. document.onmousemove = null;
  58. document.onmouseup = null;
  59. };
  60. };
  61. };
  62. </script>
  63. </head>
  64. <body>
  65. <div id="parent">
  66. <div id="div1"></div>
  67. </div>
  68. <div id="div2"></div>
  69. </body>
  70. </html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持w3xue。

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号