From d8f68282f2b8bea25b3f99350d655fe7b39b0cca Mon Sep 17 00:00:00 2001 From: Terry Cai Date: Fri, 18 Jan 2019 00:43:01 +0800 Subject: [PATCH] =?UTF-8?q?rect=20=E6=94=AF=E6=8C=81=20boxShadow?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rect 支持 boxShadow --- lib/pen.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lib/pen.js b/lib/pen.js index 1dd53b2..1a1a9fa 100644 --- a/lib/pen.js +++ b/lib/pen.js @@ -354,10 +354,27 @@ export default class Painter { } else { this.ctx.setFillStyle(view.css.color); } + this._doBoxShadow(view); this.ctx.fillRect(-(width / 2), -(height / 2), width, height); this.ctx.restore(); this._doBorder(view, width, height); } + // box-shadow 支持 (x, y, blur, color), 不支持 spread + // box-shadow:0px 0px 10px rgba(0,0,0,0.1); + _doBoxShadow(view) { + if(!view.css.boxShadow){ + return; + } + let box = view.css.boxShadow.replace(/,\s+/g, ',').split(' '); + if(box.length > 4) { + console.error('boxShadow don\'t spread option'); + return; + } + this.ctx.shadowOffsetX = parseInt(box[0]) + this.ctx.shadowOffsetY = parseInt(box[1]) + this.ctx.shadowBlur = parseInt(box[2]) + this.ctx.shadowColor = box[3]; + } _getAngle(angle) { return Number(angle) * Math.PI / 180;