我希望能够在用户滑动广告时关闭广告。
广告来自AdSense或DFP广告管理系统,即从外部主机动态创建iframes
。
当内容来自其他域时,似乎无法捕获iframe
的点击事件。有一个iFrameTracker
插件使用模糊事件,但我不确定这是否可以用于滑动 - https://github.com/finalclap/iframeTracker-jquery。
非常感谢任何帮助实现这一目标。
答案 0 :(得分:1)
我们可以通过在广告上方创建透明div来完成此操作,并根据触摸或滑动设置高度。它现在按预期工作,即滑动将关闭广告,触摸将传递到我们从广告服务器提供的iframe广告。
//Create our swipe-div
swipeAdEl = main.x("div", {"id": "swipeAdEl"}).appendTo(this.el);
//This will check if we have focus on the tab and give the swipe area 100% height after clicking on an ad
var lastFired = new Date().getTime();
setInterval(function() {
now = new Date().getTime();
if(now - lastFired > 1000) {
$(swipeAdEl).css('height', '100%');
}
lastFired = now;
}, 500);
}
this._googleAds.on('got-ad', function() {
self.el.remove_class("hidden");
$(swipeAdEl).css('display', 'block');
$(swipeAdEl).css('height', '100%');
});
swipeAdEl.addEventListener('touchend', function(e){
$(swipeAdEl).css('height', '0');
}, false)
swipeAdEl.addEventListener('touchmove', function(e){
self.hide();
}, false)