question.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Document</title>
  8. <link rel="stylesheet" href="../css/question.css">
  9. <script src="../utils/size.js"></script>
  10. </head>
  11. <body>
  12. <div class="content">
  13. <div class="question-container">
  14. <img class="container-bg" src="../image/question/questionbg.png" alt="">
  15. <div class="title">
  16. <img src="../image/question/title.png" alt="title">
  17. </div>
  18. <div class="subject">
  19. <img class="inset" src="../image/question/inset.png" alt="inset">
  20. <img class="bottom" src="../image/question/bottom.png" alt="bottom">
  21. <div class="question-box"></div>
  22. <!--
  23. <div class="question" >
  24. <div class="audio">
  25. <audio src="http://www.ytmp3.cn/down/44537.mp3" autoplay="autoplay" preload="auto">
  26. 您的浏览器不支持 audio 标签。
  27. </audio>
  28. <img class="audiobtn" src="../image/question/audiobtn.png" alt="audiobtn">
  29. <span>甜甜圈从左数是第几个?</span>
  30. </div>
  31. <div class="question-photo"></div>
  32. <ul class="option">
  33. <li class="select">第一个</li>
  34. <li>第二个</li>
  35. <li>第三个</li>
  36. </ul>
  37. <div class="order">
  38. <span>1</span><span>/5</span>
  39. </div>
  40. </div>
  41. -->
  42. </div>
  43. </div>
  44. <div class="popup">
  45. <div class="popup-content">
  46. <canvas id="myCanvas" width="255px" height="466px">
  47. 您的浏览器不支持canvas标签。
  48. </canvas>
  49. <img class="bg" src="../image/question/2.jpg" alt="">
  50. <div class="baocun">长按保存,并分享至朋友圈</div>
  51. <div class="code">
  52. <img src="../image/question/2.jpg" alt="">
  53. <div class="text">
  54. <span>长按识别二维码</span>
  55. <span>即可获得小学课文朗读配音奖品</span>
  56. </div>
  57. </div>
  58. <!--
  59. <img class="head" src="../image/question/头像.jpg" alt="">
  60. -->
  61. </div>
  62. </div>
  63. </div>
  64. </body>
  65. <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
  66. <script>
  67. var num = 2;
  68. var length = 2;
  69. var ind = 0;
  70. for(var i = 0; i <= length; i++) {
  71. $("<div></div>", {
  72. "class": "question", // 设置样式类
  73. html: '<div class="audio">' +
  74. '<audio src="http://www.ytmp3.cn/down/44537.mp3" autoplay="autoplay" preload="auto">' +
  75. '您的浏览器不支持 audio 标签。' +
  76. '</audio>' +
  77. '<img class="audiobtn" src="../image/question/audiobtn.png" alt="audiobtn">' +
  78. '<span>甜甜圈从左数是第几个?</span>' +
  79. '</div>' +
  80. '<div class="question-photo"></div>' +
  81. '<ul class="option">' +
  82. '<li>第一个</li>' +
  83. '<li>第二个</li>' +
  84. '<li>第三个</li>' +
  85. '</ul>' +
  86. '<div class="order">' +
  87. '<span class="ind">1</span><span>/'+ (length + 1) +'</span>' +
  88. '</div>' +
  89. '', // 设置内容
  90. style: 'z-index:'+ num-- +'',
  91. }).appendTo($('.question-box')); // 追加到body标签
  92. }
  93. $('.question').each(function(index) {
  94. $(this).children('ul').find('li').on('click', function() {
  95. ind++;
  96. $(this).addClass('select').siblings().removeClass('select');
  97. var that = this;
  98. setTimeout(function () {
  99. // 因为每个问题高度不同必须重置高度
  100. var height = $(that).parents('.question').height();
  101. $('.question-box').height(height);
  102. if( ind > length) {
  103. $('.popup').show();
  104. return false;
  105. }
  106. $(that).parents('.question').slideUp('slow', function () {
  107. $('.question').eq(ind).find('.ind').text(ind + 1);
  108. });
  109. }, 500)
  110. })
  111. })
  112. setTimeout(function () {
  113. var height = $('.question').height();
  114. $('.question-box').height(height);
  115. },0)
  116. //canvas绘制图片
  117. //获取Canvas对象(画布)
  118. var canvas = document.getElementById("myCanvas");
  119. //简单地检测当前浏览器是否支持Canvas对象,以免在一些不支持html5的浏览器中提示语法错误
  120. if(canvas.getContext){
  121. //获取对应的CanvasRenderingContext2D对象(画笔)
  122. var ctx = canvas.getContext("2d");
  123. //回调地狱,可优化,暂时这样写
  124. canvasImg('../image/question/2.jpg', 0, 0, '255', '466', function() {
  125. canvasImg('../image/question/2.jpg', 200, 400, '50', '50', function() {
  126. ctx.moveTo(125,20);
  127. ctx.lineTo(125,170);
  128. ctx.fillStyle = '#fff';
  129. ctx.font="14px Arial";
  130. ctx.textAlign="center";
  131. ctx.fillText("王丽丽王丽丽丽丽学前测评报告",125,120);
  132. circleImg('../image/question/2.jpg', 110, 290, 15)
  133. })
  134. })
  135. ctx.restore();
  136. }
  137. function canvasImg (url, x, y, w, h, success) {
  138. //创建新的图片对象
  139. var img = new Image();
  140. //指定图片的URL
  141. img.src = url;
  142. //浏览器加载图片完毕后再绘制图片
  143. img.onload = function(){
  144. //以Canvas画布上的坐标(10,10)为起始点,绘制图像
  145. ctx.drawImage(img, x, y, w, h);
  146. success();
  147. };
  148. }
  149. // 封装了一个简单截取头像的方法
  150. function circleImg(url, x, y, r) {
  151. //创建新的图片对象
  152. var img = new Image();
  153. //指定图片的URL
  154. img.src = url;
  155. ctx.save();
  156. var d =2 * r;
  157. var cx = x + r;
  158. var cy = y + r;
  159. img.onload = function(){
  160. ctx.arc(cx, cy, r, 0, 2 * Math.PI);
  161. ctx.clip();
  162. //以Canvas画布上的坐标(10,10)为起始点,绘制图像
  163. ctx.drawImage(img, x, y, d, d);
  164. };
  165. }
  166. //0.5s后生成图片
  167. setTimeout(function() {
  168. var dataURL = canvas.toDataURL("image/png",1.0);
  169. $('.bg').attr('src', dataURL)
  170. }, 500)
  171. </script>
  172. </html>