flash5-2.html 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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="wrapper2" class="wrapper2">
  13. <div class="bg"></div>
  14. <div class="candle drag"></div>
  15. <div class="candle reverse"></div>
  16. </div>
  17. <canvas id="myCanvas" width="800" height="600"></canvas>
  18. <script type="text/javascript">
  19. var c = document.getElementById("myCanvas");
  20. var ctx = c.getContext("2d");
  21. ctx.strokeStyle = "#0000FF";
  22. var reverse_scale = 1;
  23. var isPress = false;
  24. var hammer = document.getElementById("wrapper2");
  25. var mc = new Hammer(hammer);
  26. mc.on("press", function(ev) {
  27. isPress = true;
  28. });
  29. mc.on("pressup", function(ev) {
  30. isPress = false;
  31. });
  32. mc.get('pan').set({ direction: Hammer.DIRECTION_ALL });
  33. mc.on("panleft panright", function(ev) {
  34. var e = ev;
  35. e.pageX = ev.center.x;
  36. moveEvent(e);
  37. });
  38. $(".candle.drag").mousedown(function(){
  39. isPress = true;
  40. });
  41. $(window).mouseup(function(){
  42. isPress = false;
  43. });
  44. $(".wrapper2").mousemove(function(e){
  45. moveEvent(e);
  46. });
  47. function moveEvent(e){
  48. var mouseX = e.pageX;
  49. if (isPress && mouseX < 200 && mouseX > 20){
  50. var top = lineFormula(mouseX);
  51. $(".candle.drag").css({
  52. "left":mouseX,
  53. "top": top
  54. });
  55. var move = mouseX - 82;
  56. var p = 400 - mouseX;
  57. var f = 145;
  58. var q = (f * p) / (p - f);
  59. reverse_scale = Math.abs(-q/p);
  60. var top2 = lineFormula(400+q+34);
  61. $(".candle.reverse").css({
  62. "left": 400+q+34,
  63. "top": top2
  64. });
  65. if(p > 145){
  66. $(".candle.reverse").css("transform", "scale(-"+reverse_scale+")");
  67. $(".candle.reverse").removeClass('opacity');
  68. }else{
  69. $(".candle.reverse").css("transform", "scale("+reverse_scale+")");
  70. $(".candle.reverse").addClass('opacity');
  71. }
  72. drawing();
  73. }
  74. }
  75. function lineFormula(x){
  76. return -0.515*x+506 - 70;
  77. }
  78. function drawing(){
  79. ctx.clearRect(0,0,800,600);
  80. var x1 = parseInt($(".candle.drag").css('left'));
  81. var y1 = parseInt($(".candle.drag").css('top')) + 25;
  82. var a = (300-y1)/(400-x1);
  83. var b = 300 - (400*((300-y1)/(400-x1)));
  84. var x2 = parseInt($(".candle.reverse").css('left'));
  85. var y2 = a*x2+b;
  86. ctx.strokeStyle = "#0000FF";
  87. ctx.lineWidth = 3;
  88. ctx.beginPath();
  89. ctx.moveTo(x1, y1);
  90. ctx.lineTo(400, 240);
  91. ctx.moveTo(x1, y1);
  92. ctx.lineTo(x2, y2);
  93. ctx.moveTo(400, 240);
  94. ctx.lineTo(x2, y2);
  95. ctx.stroke();
  96. ctx.closePath();
  97. }
  98. </script>
  99. </body>
  100. </html>