|
|
|
@ -191,8 +191,8 @@
|
|
|
|
|
offsetTop = 0; |
|
|
|
|
|
|
|
|
|
do{ |
|
|
|
|
offsetLeft += el.offsetLeft; |
|
|
|
|
offsetTop += el.offsetTop; |
|
|
|
|
offsetLeft += ( BI.isIE() ? window.getComputedStyle(el).position === "fixed" ? el.offsetLeft / scale : el.offsetLeft : el.offsetLeft ); |
|
|
|
|
offsetTop += ( BI.isIE() ? window.getComputedStyle(el).position === "fixed" ? el.offsetTop / scale : el.offsetTop : el.offsetTop ); |
|
|
|
|
el = el.offsetParent; |
|
|
|
|
} while( el ); |
|
|
|
|
|
|
|
|
@ -231,12 +231,16 @@
|
|
|
|
|
} else { |
|
|
|
|
var cBounds = this.popupView.element[0].getBoundingClientRect(); |
|
|
|
|
var pBounds = this.popupView.element[0].parentElement.getBoundingClientRect(); |
|
|
|
|
if (parseInt(cBounds.top) >= parseInt(pBounds.top) && parseInt(cBounds.left) >= parseInt(pBounds.left)) { |
|
|
|
|
if (cBounds.left + cBounds.width > body.clientWidth * scale) { |
|
|
|
|
this.popupView.element[0].style.top = (parseInt(pBounds.top) + transformY - document.body.scrollTop) + "px"; |
|
|
|
|
this.popupView.element[0].style.left = (parseInt(this.popupView.element[0].style.left) * scale) + "px"; |
|
|
|
|
} else if (this.options.direction === "right") { |
|
|
|
|
this.popupView.element[0].style.top = (parseInt(pBounds.top) + transformY - document.body.scrollTop) + "px"; |
|
|
|
|
this.popupView.element[0].style.left = (parseInt(pBounds.right) + transformY - document.body.scrollTop) + "px"; |
|
|
|
|
} else if (parseInt(cBounds.top) >= parseInt(pBounds.top) && parseInt(cBounds.left) >= parseInt(pBounds.left)) { |
|
|
|
|
this.popupView.element[0].style.top = (parseInt(pBounds.bottom) + transformY - document.body.scrollTop) + "px"; |
|
|
|
|
this.popupView.element[0].style.left = (parseInt(pBounds.left) + transformY - document.body.scrollTop) + "px"; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (parseInt(cBounds.top) >= parseInt(pBounds.top) && parseInt(cBounds.left) < parseInt(pBounds.left)) { |
|
|
|
|
}else if (parseInt(cBounds.top) >= parseInt(pBounds.top) && parseInt(cBounds.left) < parseInt(pBounds.left)) { |
|
|
|
|
this.popupView.element[0].style.top = (parseInt(pBounds.bottom) + transformY - document.body.scrollTop) + "px"; |
|
|
|
|
this.popupView.element[0].style.left = (parseInt(pBounds.left) + transformY - document.body.scrollTop) + "px"; |
|
|
|
|
} |
|
|
|
@ -275,7 +279,9 @@
|
|
|
|
|
injectSearch.call(this); |
|
|
|
|
var self = this; |
|
|
|
|
if (this.popupView) { |
|
|
|
|
BI.nextTick(function () { |
|
|
|
|
BI.defer(function () { |
|
|
|
|
self.popupView.element[0].parentElement.style.left = parseInt(self.popupView.element[0].parentElement.style.left) * scale + "px"; |
|
|
|
|
self.popupView.element[0].parentElement.style.top = parseInt(self.popupView.element[0].parentElement.style.top) * scale + "px"; |
|
|
|
|
self.popupView.element[0].parentElement.style.transform = "scale(" + scale + ")"; |
|
|
|
|
self.popupView.element[0].parentElement.style.transformOrigin = "left top"; |
|
|
|
|
}) |
|
|
|
|