dnet-applications/apps/dhp-broker-application/src/main/resources/static/js/angular-backtop.min.js

2 lines
1.2 KiB
JavaScript

var backtop=angular.module("angular.backtop",[]);backtop.directive("backTop",[function(){return{restrict:"E",transclude:!0,replace:!0,template:'<div id="backtop" class="{{theme}}"><button><div ng-transclude></div></button></div>',scope:{text:"@buttonText",speed:"@scrollSpeed",theme:"@buttonTheme"},link:function(a,b){a.text=a.text||"Scroll top",a.speed=parseInt(a.speed,10)||300,a.theme=a.theme||"light";var c=this;a.currentYPosition=function(){return c.pageYOffset?c.pageYOffset:document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop?document.body.scrollTop:0},a.smoothScroll=function(){var b=a.currentYPosition(),c=0,d=c>b?c-b:b-c;if(100>d)return void scrollTo(0,c);var e=Math.round(a.speed/100),f=Math.round(d/25),g=c>b?b+f:b-f,h=0;if(c>b)for(var i=b;c>i;i+=f)setTimeout("window.scrollTo(0, "+g+")",h*e),g+=f,g>c&&(g=c),h++;else for(var j=b;j>c;j-=f)setTimeout("window.scrollTo(0, "+g+")",h*e),g-=f,c>g&&(g=c),h++},a.button=b.find("button"),a.button.on("click",function(){a.smoothScroll(),b.removeClass("show")}),window.addEventListener("scroll",function(){window.pageYOffset>0?b.addClass("show"):b.removeClass("show")})}}}]);