-
Notifications
You must be signed in to change notification settings - Fork 136
/
Copy patheleFixed.min.js
1 lines (1 loc) · 1.31 KB
/
eleFixed.min.js
1
!function(){function b(a){return"object"==typeof HTMLElement?a instanceof HTMLElement:a&&"object"==typeof a&&null!==a&&1===a.nodeType&&"string"==typeof a.nodeName}var a={targets:[],push:null,destory:null,handler:null,"delete":null};a.push=function(a){return"object"!=typeof a?console.error("eleFixed: push param must be a Object"):a.target||b(a.target)?a.offsetTop||"number"==typeof a.offsetTop?(window.eleFixed.targets.push(a),void 0):console.error("eleFixed: param's offsetTop must be a Number"):console.error("eleFixed: target must be a HTMLElement")},a.handler=function(){var c,b=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop;for(c in a.targets)a.targets[c].target.style.transform=b>a.targets[c].offsetTop?"translateY("+(b-a.targets[c].offsetTop)+"px)":"translateY(0px)"},a.delete=function(a){var c,d;if(a&&b(a)){c=window.eleFixed.targets;for(d in c)if(a.isEqualNode(c[d].target)){a.style.transform="translateY(0px)",c.splice(d,1);break}}},a.destory=function(){window.removeEventListener("scroll",a.handler);for(var b in window.eleFixed.targets)window.eleFixed.targets[b].target.style.transform="translateY(0px)";window.eleFixed=null},"object"==typeof exports?module.exports=a:"function"==typeof define&&define.amd?define(function(){return a}):this.eleFixed=a,window.addEventListener("scroll",a.handler)}();