diff options
| author | Eltrac Koalar <hi@guhub.cn> | 2022-11-14 08:57:43 +0800 |
|---|---|---|
| committer | Eltrac Koalar <hi@guhub.cn> | 2022-11-14 08:57:43 +0800 |
| commit | 53988f8e80799187c1bc0caeea130d4eebd2e4f1 (patch) | |
| tree | 22343aa6018f335f55551163262be7336d3f444e /assets/js/miracles.min.js | |
| parent | eec5008d3fbb28091a65d4c895f2dfe8fa96086d (diff) | |
:dizzy: Add: 添加返回顶部动画
顺带修复 bug
Diffstat (limited to 'assets/js/miracles.min.js')
| -rw-r--r-- | assets/js/miracles.min.js | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/assets/js/miracles.min.js b/assets/js/miracles.min.js index 056eb8e..57dda1b 100644 --- a/assets/js/miracles.min.js +++ b/assets/js/miracles.min.js @@ -64,16 +64,6 @@ function scaleOut(object, time) { object.css('transition', time).css('transform', 'scale(0)') } -function gotoPosition(e){ - var t=e.offsetTop; - var l=e.offsetLeft; - while(e=e.offsetParent){ - t+=e.offsetTop; - l+=e.offsetLeft; - } - $("html,body").animate({scrollTop:t},300); -} - /** * Dark theme */ @@ -144,10 +134,25 @@ schemeGeter.addListener(swDarkMode); /** * GoTop */ -function GoTop() { - document.body.scrollTop = 0; - document.documentElement.scrollTop = 0; -} +var GoTop = function () { + if (!window.requestAnimationFrame) { + window.requestAnimationFrame = function(callback, element) { + return setTimeout(callback, 17); + }; + } + var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; + var step = function () { + var distance = 0 - scrollTop; + scrollTop = scrollTop + distance / 5; + if (Math.abs(distance) < 1) { + window.scrollTo(0, 0); + } else { + window.scrollTo(0, scrollTop); + requestAnimationFrame(step); + } + }; + step(); +}; $('#gotop').hide(); $(window).scroll(function() { if ($(window).scrollTop() > 450) { @@ -455,7 +460,6 @@ if (loadPjax = true) { fragment: '#pjax-container', timeout: 8000 }).on('pjax:send', function() { - GoTop(); //Others beforePjax(); }).on('pjax:complete', function() { |
