<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>学前能力测试</title>
    <link rel="stylesheet" href="../css/question.css">
    <script src="../utils/size.js"></script>
</head>
<body>
    <div class="content">
    <div class="question-container">
        <img class="container-bg" src="../image/question/questionbg.jpg" alt="">
        <div class="title">
            <img src="../image/question/title.png" alt="title">
        </div>
        <div class="subject">
            <img class="inset" src="../image/question/inset.png" alt="inset">
            <img class="bottom" src="../image/question/bottom.png" alt="bottom">
            <!--需要点击播放-->
            <audio id="audio" src="" >
                您的浏览器不支持 audio 标签。
            </audio>
            <div class="question-box"></div>
            <!--
            <div class="question" >
                <div class="audio">
                    <audio src="http://www.ytmp3.cn/down/44537.mp3" autoplay="autoplay" preload="auto">
                        您的浏览器不支持 audio 标签。
                    </audio>
                    <img class="audiobtn" src="../image/question/audiobtn.png" alt="audiobtn">
                    <span>甜甜圈从左数是第几个?</span>
                </div>
                <div class="question-photo"></div>
                <ul class="option">
                    <li class="select">第一个</li>
                    <li>第二个</li>
                    <li>第三个</li>
                </ul> 
                <div class="order">
                    <span>1</span><span>/5</span>    
                </div> 
            </div>
            -->
        </div>
    </div>
    <div class="popup">
        <div class="popup-content">
            <canvas id="myCanvas" width="750px" height="1334px">
                您的浏览器不支持canvas标签。
            </canvas>
            <!--<img class="bg" src="../image/question/2.jpg" alt=""  crossorigin="anonymous">-->
            <img class="bg" alt=""  crossorigin="anonymous">
            <div class="baocun">长按保存,并分享至朋友圈</div>
            <div class="code">
                <img src="../image/question/code.jpg" alt="">
                <div class="text">
                    <span>长按识别二维码</span>
                    <span>即可获得小学课文朗读配音奖品</span>
                </div>
            </div>
            <!--
            <img class="head" src="../image/question/头像.jpg" alt="">
            -->
        </div>
    </div>
    </div>
</body>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script> 
//console.log(localStorage.getItem('userData') == 'undefined')
window.onload=function(){
    if(localStorage.getItem('userData') == 'undefined') {
        //alert('请重新扫码登陆')
        window.location.href = '../index.html'
        return false;
    }

    var user = JSON.parse(localStorage.getItem('userData'));
    var uid = user.uid;
    var avatar = user.avatar ? user.avatar : '';
    var name = user.wechatName ? user.wechatName : '小朋友';
    //获取Canvas对象(画布)
    var canvas = document.getElementById("myCanvas");
    var data = {
        "activityId": "1",
        "answer": "",
        "questionId": "",
        "requestId": ""
    }
    var ind = 0;
    function recursion() {
        ajaxData("https://activity.lingjiao.cn/activity/activity/xq", uid, data, function(result){
            var length = result.data.questionNum;
            if( ind >= length && result.data.isEnd === 0) {
                $('#audio').attr('src', "")
                $('.popup').show();
                //简单地检测当前浏览器是否支持Canvas对象,以免在一些不支持html5的浏览器中提示语法错误
                if(canvas.getContext){  
                    //获取对应的CanvasRenderingContext2D对象(画笔)
                    var ctx = canvas.getContext("2d");
                    //回调地狱,可优化,暂时这样写
                    //alert(result.data.poster)
                    canvasImg(ctx, result.data.poster, 0, 0, '750', '1334', function() {
                        ctx.moveTo(365,20);
                        ctx.lineTo(365,170);
                        ctx.fillStyle = '#fff';
                        ctx.font="36px Arial";
                        ctx.textAlign="center";
                        //alert(name)
                        ctx.fillText(name + "学前测评报告",365,370);
                        //alert(avatar)
                        circleImg(ctx, avatar, 328, 836, 41)
                    })
                    ctx.restore();
                }
                // 2.5s后生成图片
                setTimeout(function() {
                    var dataURL = canvas.toDataURL("image/jpeg",1.0);
                    $('.bg').attr('src', dataURL)
                }, 2500)
                return false;
            }
            data.questionId = result.data.question.id;
            data.requestId = result.data.requestId;
            // 一开始创建div 没内容
            $("<div></div>", {
            "class": "question", // 设置样式类
            html: '<div class="order">' +
                        '<span class="ind">1</span><span>/'+ length +'</span>' +   
                    '</div>', // 设置内容 
            }).appendTo($('.question-box')); // 追加到body标签
            // 初次渲染第一题
            renderDiv(ind, result.data.question)
            $('.question').eq(ind).children('ul').find('li').one('click', function() {
                data.answer = $(this).data('answer');
                ind++;
                $(this).addClass('select').siblings().removeClass('select');
                var that = this;
                recursion();
                setTimeout(function () {
                    $(that).parents('.question').slideUp('slow', function () {
                        $('.question').eq(ind).find('.ind').text(ind + 1);
                    });
                }, 100)
            })
        })
    }
    recursion();
    // ajax请求
    function ajaxData (url, uid, data, success) {
        $.ajax({
            url: url,
            type: 'POST',
            headers: {'uid': uid},
            contentType:'application/json;charset=utf-8',
            data: JSON.stringify(data),
            success: success
        });
    }
    // 渲染元素
    function renderDiv (ind, datas) {
        $('#audio').attr('src', datas.audio)
        var renders =  '<div class="audio">' + 
                            // '<audio src="'+ datas.audio +'" autoplay="autoplay" loop="loop">' +
                            //     '您的浏览器不支持 audio 标签。' +
                            // '</audio>' +
                            '<img class="audiobtn" src="../image/question/audiobtn.png" alt="audiobtn">' +
                            '<div>'+ datas.content +'</div>' +
                        '</div>' +
                        '<div class="question-photo">'+
                            '<img src="'+ datas.imgUrl +'" alt="">'+
                        '</div>' +
                        '<ul class="option">' +
                            '<li data-answer="A">'+ datas.optionA +'</li>' +
                            '<li data-answer="B">'+ datas.optionB +'</li>' +
                            '<li data-answer="C">'+ datas.optionC +'</li>' +
                        '</ul>'
        $('.question').eq(ind).prepend(renders);
        audioAutoPlay('audio');     
    }
    function canvasImg (ctx, url, x, y, w, h, success) {
        //创建新的图片对象
        var img = new Image();
        img.setAttribute('crossOrigin', 'anonymous');
        //指定图片的URL
        img.src = url;
        //浏览器加载图片完毕后再绘制图片
        img.onload = function(){
            //以Canvas画布上的坐标(10,10)为起始点,绘制图像
            ctx.drawImage(img, x, y, w, h);  
            success();          
        };
    }
    // 封装了一个简单截取头像的方法
    function circleImg(ctx, url, x, y, r) {
        //创建新的图片对象
        var img = new Image();
        img.setAttribute('crossOrigin', 'anonymous');
        //指定图片的URL
        img.src = url;
        ctx.save();
        var d =2 * r;
        var cx = x + r;
        var cy = y + r;
        img.onload = function(){
            ctx.arc(cx, cy, r, 0, 2 * Math.PI);
            ctx.clip();
            //以Canvas画布上的坐标(10,10)为起始点,绘制图像
            ctx.drawImage(img, x, y, d, d);             
        };
    }
    // 解决苹果不能播放
    function audioAutoPlay(id){
      var audio = document.getElementById(id);
    play = function(){
            audio.load();
       audio.play();
    };
       $('.audiobtn').on("click",play);
    }
}
</script>
</html>