发表于: 2019-03-23 23:33:08

1 431


今天完成

1了解Vue

明天计划

1 完成js6-10

遇到的问题:

收获

实现html元素跟随touchmove事件的event.touches[0].clientX移动

主要是使用了transform:translateX 实现
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0">
  6. <title>newWaterChart</title>
  7. <!--<link rel="stylesheet" href="css/newBarChart.css">-->
  8. <style>
  9. * {
  10. padding:0;
  11. margin:0;
  12. -webkit-box-sizing: border-box;
  13. }
  14. .chart-wrap {
  15. background-color: #7ecef4;
  16. }
  17. .chart-container {
  18. width:120%;
  19. height: 250px;
  20. padding-top: 100px;
  21. transform: translateX(-20px);
  22. }
  23. .chart-item {
  24. width: 20px;
  25. line-height: 120px;
  26. display: inline-block;
  27. border: 1px solid white;
  28. border-radius: 10px;
  29. }
  30. .flex-wrap {
  31. display: flex;justify-content: space-around;
  32. }
  33. .flex-item {
  34.  
  35. }
  36. .chart-wrap {
  37. overflow: hidden;
  38. }
  39. </style>
  40. </head>
  41. <body>
  42. <div class="chart-wrap">
  43. <div class="chart-container flex-wrap">
  44. <span class="chart-item flex-item">1</span>
  45. <span class="chart-item flex-item">2</span>
  46. <span class="chart-item flex-item">3</span>
  47. <span class="chart-item flex-item">4</span>
  48. <span class="chart-item flex-item">5</span>
  49. <span class="chart-item flex-item">6</span>
  50. <span class="chart-item flex-item">7</span>
  51. <span class="chart-item flex-item">8</span>
  52. <span class="chart-item flex-item">9</span>
  53. <span class="chart-item flex-item">10</span>
  54. <span class="chart-item flex-item">11</span>
  55. <span class="chart-item flex-item">12</span>
  56. </div>
  57. </div>
  58.  
  59. <script src="js/zepto.min.js"></script>
  60. <!--<script src="js/newBarChart.js"></script>-->
  61. <script>
  62. $(function () {
  63. var chartContanier = $(".chart-container");
  64. var touchstartClientX,
  65. touchmoveClientX,
  66. translateX, //实时更新x轴偏移
  67. shiftLen, //touchmoveClientX - touchstartClientX
  68. originalTranslateX, //初始x轴偏移
  69. flagMove = false; //是否触发了touchmove事件
  70.  
  71. //matrix(1, 0, 0, 1, -20, 0) ,第四个为原本偏移长度
  72. originalTranslateX = parseInt(chartContanier.css("transform").split(",")[4]);
  73.  
  74. chartContanier.on("touchstart", function (event) {
  75. var event = event || window.event;
  76. event.preventDefault();
  77.  
  78. if (shiftLen !== undefined && flagMove) {
  79. originalTranslateX += shiftLen;
  80. }
  81. touchstartClientX = event.touches[0].clientX;
  82. flagMove = false;
  83. });
  84. chartContanier.on("touchmove", function (event) {
  85. var event = event || window.event;
  86. event.preventDefault();
  87.  
  88. flagMove = true;
  89. touchmoveClientX = event.touches[0].clientX;
  90. shiftLen = touchmoveClientX - touchstartClientX;
  91. translateX = originalTranslateX + shiftLen;
  92.  
  93. chartContanier.css("transform", "translateX(" + translateX + "px)");
  94. });
  95.  
  96. });
  97. </script>
  98. </body>
  99. </html>



返回列表 返回列表
评论

    分享到