JS === 实现简易调色板

淡淡的烟草味﹌ 2021-12-03 11:43 336阅读 0赞
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title></title>
  5. <style type="text/css">
  6. *{margin:0;padding:0;}
  7. .box{width: 500px;height: 400px;margin:100px auto;}
  8. .red,.green,.blue{width: 275px;height: 20px;float: left;position: relative;border:1px solid #eee;margin:10px;color:white;line-height: 20px;text-align: center;user-select: none}
  9. .mark{width:20px;height: 20px;background:#ccc;position: absolute;cursor: pointer;left:0;top:0;}
  10. .show{width: 100px;height: 100px;border:1px solid #000;float: left;margin-left:50px;margin-top:-50px;}
  11. .bag{width: 0;height: 20px;position: absolute;left:0;top:0;} //给显示背景颜色的div 初始值 width为 0,背景色
  12.                                            这样滑动了多少,width就是多少,背景色就能够显示多少
  13. .red .bag{background:red;}
  14. .green .bag{background:green;}
  15. .blue .bag{background:blue;}
  16. </style>
  17. </head>
  18. <body>
  19. <div class="box">
  20. <div class="red">
  21. <div class="mark r">r</div> //滑动块
  22. <div class="bag"></div> // 背景颜色显示在已经滑动的距离上面
  23. </div>
  24. <div class="green">
  25. <div class="mark g">g</div>
  26. <div class="bag"></div>
  27. </div>
  28. <div class="blue">
  29. <div class="mark b">b</div>
  30. <div class="bag"></div>
  31. </div>
  32. <div class="show"></div>
  33. </div>
  34. <script type="text/javascript">
  35. var marks = document.querySelectorAll(".mark");
  36. var show = document.querySelector(".show");
  37. var r = document.querySelector(".r")
  38. var g = document.querySelector(".g");
  39. var b = document.querySelector(".b");
  40. var bags = document.querySelectorAll(".bag");
  41. for(let i = 0 ; i < marks.length;i++){
  42. marks[i].onmousedown = function(evt){
  43. //获取到鼠标按下时候鼠标当前的位置
  44. var x = evt.clientX;
  45. //获取到当前mark的坐标
  46. var left = this.offsetLeft;
  47. window.onmousemove = function(evt){
  48. //获取到鼠标移动时候的位置
  49. var disx = evt.clientX - x //鼠标移动的距离就是盒子移动的距离
  50. //此时盒子的坐标
  51. var ws = left + disx;
  52. ws<0 ? ws=0 : ws;   //让滑动块始终存在于盒子的里面
  53. ws > 255?ws=255: ws;
  54. marks[i].style.left = ws + "px";
  55. bags[i].style.width = ws + "px";
  56. show.style.background= `rgb(${r.offsetLeft},${g.offsetLeft},${b.offsetLeft})` // 模板字符串 rgb(255,0,0)
  57. }
  58. window.onmouseup = function(){
  59. window.onmousemove = null;
  60. window.onmouseup = null;
  61. }
  62. }
  63. }
  64. </script>
  65. </body>
  66. </html>

解题思路:

滑动条滚动的距离即坐标的值 === rgb 颜色的值

1.滑动条的距离

鼠标移动的距离 + offsetLeft == 现在的坐标值 ===》 即为 rgb的颜色值

2.滑动多少 背景色是多少

*最开始没有想出来*

在上面又添加一个div,专门用来显示背景色,而背景色显示到哪里,是根据我的滑动块滑动到哪里决定的。

所以最开始给div设置 width :0 background:red 而滑动块滑动的距离 赋给width,这样就能显示相应的背景色了。

1732730-20190717231826537-1445914896.png

file:///E:/%E6%9E%97%E9%9C%9C%E9%9B%AAJS/all%E7%BB%83%E4%B9%A0ppt/rgb%E9%A2%9C%E8%89%B2.html

转载于:https://www.cnblogs.com/rabbit-lin0903/p/11204371.html

发表评论

表情:
评论列表 (有 0 条评论,336人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JS实现简易网页计算器

    js实现简易计算器。计算器的布局不像表格那么公正对称,所以布局这块相对比较繁琐,但是也可以通过这来练习一下CSS。 一、实现功能 1. 完成计算器的加减乘除的基本计算功能