flash5-1.html 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Document</title>
  6. <link rel="stylesheet" type="text/css" href="css/reset.css">
  7. <link rel="stylesheet" type="text/css" href="css/flash5.css">
  8. <script type="text/javascript" src="js/jquery-1.11.3.min.js"></script>
  9. <script type="text/javascript" src="js/hammer.min.js"></script>
  10. </head>
  11. <body>
  12. <div id="wrapper" class="wrapper">
  13. <div class="bg"></div>
  14. <div class="candle drag"></div>
  15. <div class="candle reverse"></div>
  16. <!-- <div class="candle empty"></div> -->
  17. </div>
  18. <canvas id="myCanvas" width="800" height="600"></canvas>
  19. <script type="text/javascript">
  20. var c = document.getElementById("myCanvas");
  21. var ctx = c.getContext("2d");
  22. ctx.strokeStyle = "#0000FF";
  23. var reverse_scale = 1;
  24. var isPress = false;
  25. var hammer = document.getElementById("wrapper");
  26. var mc = new Hammer(hammer);
  27. mc.on("press", function(ev) {
  28. isPress = true;
  29. });
  30. mc.on("pressup", function(ev) {
  31. isPress = false;
  32. });
  33. mc.get('pan').set({ direction: Hammer.DIRECTION_ALL });
  34. mc.on("panleft panright", function(ev) {
  35. var e = ev;
  36. e.pageX = ev.center.x;
  37. moveEvent(e);
  38. });
  39. $(".candle.drag").mousedown(function(){
  40. isPress = true;
  41. });
  42. $(window).mouseup(function(){
  43. isPress = false;
  44. });
  45. $(".wrapper").mousemove(function(e){
  46. moveEvent(e);
  47. });
  48. function moveEvent(e){
  49. var mouseX = e.pageX;
  50. if (isPress && mouseX < 360 && mouseX > 20){
  51. $(".candle.drag").css("left",mouseX);
  52. var move = mouseX - 100;
  53. var p = 400 - mouseX;
  54. var f = 150;
  55. var q = (f * p) / (p - f);
  56. reverse_scale = Math.abs(-q/p);
  57. $(".candle.reverse").css("left", 400+q);
  58. if(p > 150){
  59. $(".candle.reverse").css("transform", "scale(-"+reverse_scale+")");
  60. $(".candle.reverse").removeClass('opacity');
  61. }else{
  62. $(".candle.reverse").css("transform", "scale("+reverse_scale+")");
  63. $(".candle.reverse").addClass('opacity');
  64. }
  65. drawing();
  66. }
  67. }
  68. function drawing(){
  69. ctx.clearRect(0,0,800,600);
  70. var x1 = parseInt($(".candle.drag").css('left'));
  71. var y1 = parseInt($(".candle.drag").css('top')) + 25;
  72. var a = (300-y1)/(400-x1);
  73. var b = 300 - (400*((300-y1)/(400-x1)));
  74. var x2 = parseInt($(".candle.reverse").css('left'));
  75. var y2 = a*x2+b;
  76. var x3 = parseInt($(".candle.reverse").css('left'));
  77. var y3 = 300 - (($(".candle.reverse").height() - 25) * reverse_scale);
  78. var unlimitedX = 1000;
  79. var unlimitedY = a*unlimitedX+b;
  80. var unlimitedY2 = 0.3 * unlimitedX + 135;
  81. var f_line_x = x3;
  82. var f_line_y = 0.3 * f_line_x + 135;
  83. ctx.strokeStyle = "#0000FF";
  84. ctx.lineWidth = 3;
  85. ctx.beginPath();
  86. ctx.moveTo(x1, y1);
  87. ctx.lineTo(400, y1);
  88. ctx.moveTo(x1, y1);
  89. ctx.lineTo(x2, y2);
  90. ctx.moveTo(400, y1);
  91. ctx.lineTo(f_line_x, f_line_y);
  92. ctx.stroke();
  93. ctx.closePath();
  94. if (x1 > 250){
  95. ctx.strokeStyle = "#0000FF";
  96. ctx.beginPath();
  97. ctx.moveTo(400, 300);
  98. ctx.lineTo(unlimitedX, unlimitedY);
  99. ctx.moveTo(400, y1);
  100. ctx.lineTo(unlimitedX, unlimitedY2);
  101. ctx.stroke();
  102. ctx.closePath();
  103. ctx.strokeStyle = "#FF0000";
  104. ctx.beginPath();
  105. ctx.moveTo(400, y1);
  106. ctx.lineTo(x3, y3);
  107. ctx.moveTo(400, 300);
  108. ctx.lineTo(x3, y3);
  109. ctx.stroke();
  110. }
  111. ctx.closePath();
  112. }
  113. </script>
  114. </body>
  115. </html>