diff --git a/src/canvas/view/CanvasView.js b/src/canvas/view/CanvasView.js index 6169b194b..b79ec14fe 100644 --- a/src/canvas/view/CanvasView.js +++ b/src/canvas/view/CanvasView.js @@ -317,11 +317,12 @@ module.exports = Backbone.View.extend({ const doc = this.frame.el.contentDocument; if (!doc) return; const bEl = doc.body; + const zoom = this.getZoom(); const fo = this.getFrameOffset(); const co = this.getCanvasOffset(); return { - top: fo.top + bEl.scrollTop - co.top, - left: fo.left + bEl.scrollLeft - co.left + top: fo.top + bEl.scrollTop * zoom - co.top, + left: fo.left + bEl.scrollLeft * zoom - co.left }; }, diff --git a/src/commands/view/SelectComponent.js b/src/commands/view/SelectComponent.js index 2df42f887..d4b948db1 100644 --- a/src/commands/view/SelectComponent.js +++ b/src/commands/view/SelectComponent.js @@ -266,6 +266,7 @@ module.exports = { * @private * */ updateBadge(el, pos) { + const { em } = this; var $el = $(el); var canvas = this.canvas; var config = canvas.getConfig(); @@ -281,12 +282,14 @@ module.exports = { var u = 'px'; bStyle.display = 'block'; var canvasPos = canvas.getCanvasView().getPosition(); + if (canvasPos) { - var badgeH = badge ? badge.offsetHeight : 0; - var badgeW = badge ? badge.offsetWidth : 0; - var top = - pos.top - badgeH < canvasPos.top ? canvasPos.top : pos.top - badgeH; - var left = pos.left + badgeW < canvasPos.left ? canvasPos.left : pos.left; + const canvasTop = canvasPos.top; + const canvasLeft = canvasPos.left; + const posTop = pos.top - (badge ? badge.offsetHeight : 0); + const badgeW = badge ? badge.offsetWidth : 0; + var top = posTop < canvasTop ? canvasTop : posTop; + var left = pos.left + badgeW < canvasLeft ? canvasLeft : pos.left; bStyle.top = top + u; bStyle.left = left + u; }