@umutyaldiz/hopejs
Version:
Frontend Javascript Builder
32 lines (28 loc) • 938 B
JavaScript
import isInViewport from "../isInViewport/index.js";
import DataLayer from "./plugins/dataLayer.js";
export default class Tracker {
constructor(options) {
this.datalayer = new DataLayer();
}
PageLinkTrack() {
}
ElementViewTrack(elements) {
for (let i = 0, length = elements.length; i < length; i++) {
const element = document.querySelector(elements[i]);
if (isInViewport(element) && !element.classList.contains('gtm-send')) {
const layer = JSON.parse(element.getAttribute('tracker-options'));
this.DataLayerPush({
"event": "viewElement",
...layer
});
element.classList.add('gtm-send');
}
}
}
DataLayerPush(obj) {
this.datalayer.Push(obj);
}
DataLayerGet() {
this.datalayer.Get();
}
}