Skip to content

Instantly share code, notes, and snippets.

@devcem
Created December 5, 2022 11:34
Show Gist options
  • Save devcem/330aec670aa88cf83c33d70b640e4bce to your computer and use it in GitHub Desktop.
Save devcem/330aec670aa88cf83c33d70b640e4bce to your computer and use it in GitHub Desktop.
To prevent zoom calculations
var virtualBanner = {
elements : [],
init : function(){
setInterval(function(self){
self.update();
}, 1000, this);
},
displayAd : function(elementId, callback){
setTimeout(function(self){
self.create(elementId);
}, 20, this);
//after DOM element is being created
setTimeout(function(self){
PokiSDK.displayAd(
elementId,
'728x90',
callback
);
}, 60, this);
},
create : function(elementId){
var element = document.createElement('div');
var bannerElement = document.getElementById(elementId);
if(!bannerElement){
console.warn('Banner element doesnt exist!');
return false;
}
var offset = bannerElement.getBoundingClientRect();
element.style.width = '728px';
element.style.height = '90px';
element.style.position = 'absolute';
element.style.left = offset.left + 'px';
element.style.bottom = (window.innerHeight - offset.bottom) + 'px';
var scaleRatio = offset.width * 1.0 / 728;
element.style.transform = 'scale(' + scaleRatio + ')';
element.style.transformOrigin = 'left bottom';
element.connectedTo = elementId;
document.body.appendChild(element);
this.elements.push(element);
},
update : function(){
var i = this.elements.length;
while(i--){
var element = this.elements[i];
var isExist = document.getElementById(element.connectedTo);
if(!isExist){
element.remove();
this.elements.splice(i, 1);
}
}
}
};
virtualBanner.init();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment