| Server IP : 213.186.33.4 / Your IP : 216.73.216.193 Web Server : Apache System : Linux webm006.cluster103.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64 User : awebpaca ( 35430) PHP Version : 8.5.0 Disable Function : _dyuweyrj4,_dyuweyrj4r,dl MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/a/w/e/awebpaca/piwik/plugins/TagManager/Template/Trigger/ |
Upload File : |
(function () {
return function (parameters, TagManager) {
var self = this;
var numTriggers = 0;
this.setUp = function (triggerEvent) {
var scrollType = parameters.get('scrollType');
var pixels = parameters.get('pixels', 1000);
var percentage = parameters.get('percentage', 50);
if (!scrollType) {
return;
}
this.scrollIndex = TagManager.window.onScroll(function (event) {
var hasReachedScrollPosition = false;
var dom = TagManager.dom;
var lastScrollTop = parseInt(dom.getScrollTop(), 10) + TagManager.window.getViewportHeight();
var lastScrollLeft = parseInt(dom.getScrollLeft(), 10) + TagManager.window.getViewportWidth();
var docHeight = dom.getDocumentHeight();
var docWidth = dom.getDocumentWidth();
var scrollPercentageVertical = (lastScrollTop / docHeight) * 100;
var scrollPercentageHorizontal = (lastScrollLeft / docWidth) * 100;
var eventType = event && event.type ? event.type : '';
switch (scrollType) {
case 'verticalpixel':
if (lastScrollTop > pixels) {
hasReachedScrollPosition = true;
}
break;
case 'horizontalpixel':
if (lastScrollLeft > pixels) {
hasReachedScrollPosition = true;
}
break;
case 'verticalpercentage':
if (scrollPercentageVertical >= percentage) {
hasReachedScrollPosition = true;
}
break;
case 'horizontalpercentage':
if (scrollPercentageHorizontal >= percentage) {
hasReachedScrollPosition = true;
}
break;
}
if (hasReachedScrollPosition) {
if (!numTriggers) {
// ensure it won't be executed twice even if there is some race condition
numTriggers++;
triggerEvent({
event: 'mtm.ScrollReach',
'mtm.scrollSource': eventType,
'mtm.scrollLeftPx': lastScrollLeft,
'mtm.scrollTopPx': lastScrollTop,
'mtm.scrollVerticalPercentage': Math.round(scrollPercentageVertical * 100) / 100,
'mtm.scrollHorizontalPercentage': Math.round(scrollPercentageHorizontal * 100) / 100,
'mtm.scrollDocumentHeightPx': docHeight,
'mtm.scrollDocumentWidthPx': docWidth,
});
}
if (self.scrollIndex !== null) {
TagManager.window.offScroll(self.scrollIndex);
self.scrollIndex = null;
}
}
});
};
};
})();