Browse Source

Update scroll for getPosition

pull/1800/head
Artur Arseniev 7 years ago
parent
commit
6e3776b981
  1. 5
      src/canvas/view/CanvasView.js
  2. 13
      src/commands/view/SelectComponent.js

5
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
};
},

13
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;
}

Loading…
Cancel
Save