老师看一下,显示的不对

老师看一下,显示的不对

(function () {

window.canvasLock =function(obj){

this.height = obj.height;

this.width= obj.width;

this.chooseType = obj.chooseType;

};

//js生成Dom

canvasLock.prototype.initDom=function(){


// 动态创建div

var wrap = document.createElement('div');

// 动态创建div中的h4样式

var str  = '<h4 id="title" class="title">请解锁</h4>';

// 给div添加样式

wrap.setAttribute('style','position:absolute;top:0;left:0;bottom:0;right:0;');


// 动态创建canvas

var canvas = document.createElement('canvas');

// 给canvas添加ID

canvas.setAttribute('id','canvas');

// 给canvas添加样式

        canvas.style.cssText = 'background-color: #305066;display: inline-block;margin-top: 15px;';


        // 把h3的样式添加到div中

        wrap.innerHTML= str;

        // 把canvas添加到div中

        wrap.appendChild(canvas);

        // 设定宽度

        var width = this.width||300;

        // 设置高度

        var height = this.height||300;

        // 把宽度添加到canvas中

        canvas.style.width = width+'px';

        // 把高度添加到canvas中

        canvas.style.height = height+'px';


        canvas.width=width;

        canvas.height = height;

        // 把div添加到body中

        document.body.appendChild(wrap);


}

     canvasLock.prototype.drawCle = function(x, y) { // 初始化解锁密码面板

            this.ctx.strokeStyle = '#CFE6FF';

            this.ctx.lineWidth = 2;

            this.ctx.beginPath();

            this.ctx.arc(x, y, this.r, 0, Math.PI * 2, true);

            this.ctx.closePath();

            this.ctx.stroke();

       }

     canvasLock.prototype.createCircle = function() {// 创建解锁点的坐标,根据canvas的大小来平均分配半径


            var n = this.chooseType;

            var count = 0;

            this.r = this.ctx.canvas.width / (2 + 4 * n);// 公式计算

            this.lastPoint = [];

            this.arr = [];

            this.restPoint = [];

            var r = this.r;

            for (var i = 0 ; i < n ; i++) {

                for (var j = 0 ; j < n ; j++) {

                    count++;

                    var obj = {

                        x: j * 4 * r + 3 * r,

                        y: i * 4 * r + 3 * r,

                        index: count

                    };

                    this.arr.push(obj);

                    this.restPoint.push(obj);

                }

            }


            this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);

            for (var i = 0 ; i < this.arr.length ; i++) {

                // 画圆函数

                this.drawCle(this.arr[i].x, this.arr[i].y);

            }

            //return arr;

        }


//程序初始化

canvasLock.prototype.init = function(){

this.initDom();

this.canvas = document.getElementById('canvas');

this.ctx = this.canvas.getContext('2d');


//1、确定半径

//2、确定每一个圆的中心坐标点

//3、3个圆14个半径 ,4个圆18个半径

this.createCircle();


}

})();


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕言 2020-06-30 18:51:47

同学你好,老师这边测试是没有问题的,同学说的三分之一是指什么呢?同学可以使用谷歌浏览器再测试下。祝学习愉快~

好帮手慕言 2020-06-30 15:59:45

同学你好,使用同学提供的代码放到源码中测试,效果如下:
http://img1.sycdn.imooc.com//climg/5efaf0da09ecfa2d03570372.jpg

同学提到的显示的不对,指的是哪里呢?可以详细描述下。祝学习愉快~

  • 提问者 ZZZZZzn #1
    为什么我显示三分之一...
    2020-06-30 16:05:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
3.WebAPP开发与小程序
  • 参与学习           人
  • 提交作业       622    份
  • 解答问题       6815    个

微信带火了小程序,也让前端工程师有了更多的展现机会,本阶段带你从移动基础知识的学习到webAPP开发,及小程序开发,让你PC端与移动端两端通吃。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师