backToTop

add backtotop button for all site

  1. // ==UserScript==
  2. // @name backToTop
  3. // @namespace https://github.com/archion/
  4. // @version 0.1
  5. // @description add backtotop button for all site
  6. // @match http://*/*
  7. // @match https://*/*
  8. // @copyright 2014+, archion
  9. // @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAA8CAQAAACQ9RH5AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJb0ZGcwAAAAAAAAAFAKddQosAAAAJcEhZcwAADdcAAA3XAUIom3gAAAMQSURBVFjDxdk9T1NRGMDxP2pIKyFgjKQyMRBIoL6UBJ1kcNAPIC/usoifQXSAbyAMwsgCI7BAIu1mJ2qJOCgR7aCGBHBR6IvU4VIovefcPuf0FM6zkXvvj3v63PP2NCBvTXQQpZdO2mnlKleAAn/5zQ+22GSTbf5IH9YguirEHR7xkB6uc1lzzT92+UScFdIcGryOtrUwzCJ7FIWxxxIjtNaGhhkkTlaMliJHgiHCtmyMeQ6M0VIcsECfORpijIw1WooMY4RM2Agz5GpmvU6f5aaU7WbVCVqKVbolbJSkU7ZIkSS3qr+te9ajA9864riTz3a49rcOMVM3tkiRWd2XPeYok/UZ/kLFxgy/222mmOKr0T0Z/5ASZt7oESn6Aehn3ei+hcruHjQaHFPETu68a0QfMFTOthC3ZM3pRPnMNWKQVpWsKZ3j6elntFQTa0ovlyaOe+JpXsea0fvc92556YA1o8cBmllzwprQcZqhj5+OWDn9iz54JshoKSul84zCG6eslJ6Gd1UuWTdkZfQafHHOSugtAr/hYLaHXmt6n4DlejAbI8WHwJVzEJ2DI0t2XZB4evpIB8tYe/pI3dUpMWtL51TJtcOA4YOC6QfsqJLrs++PiYB9nq7rguiQYpmxpRpANmgzTpYg+gZp1QDiHzILTNIo+G1ldCMTFHzXTqsniSyvfXQ1Vk038kqRvnlGIaacFitpCeun1ezxtKhbCJTTUvYsrWOPFwL6pU+WSdoIM0BKzHr0AGHamNAOx+Pef6Zf7BVIk1B8hdVihwRpRUp5cbLYM1neuohlQnAJOGSOPOfV8sydHsCZbWFqi8TZwzezTZt9VGzazLeptrHgnwdMN+Y2kVGvWC7oKOI8Dl+0x4sRVurGrgYfLXbxvi5ssvqxYrQOdJKoZGzpctzhwkNU77d+6+zYeIaIlPUy/Dnfa2aND8q9VmtpYN6mNFB67ydWxZAscQbtiyFe88o/u2J0j0WGaan2WGnB6zaPRQWvNVbYkBS8ZLDXmuiglyidtHOtrMS3f1zi+8g3eYnvP8iktgs0QF6yAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE0LTA5LTE0VDE5OjA4OjM3KzA4OjAwLN1sPgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0wOS0xNFQxOTowODozNyswODowMF2A1IIAAAAASUVORK5CYII=
  10. // ==/UserScript==
  11. if (window.top != window.self) { return; } //don't run on frames or iframes
  12. var af=document.createElement("link");
  13. af.rel="stylesheet";
  14. af.href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css";
  15. document.head.appendChild(af);
  16. var tp=document.createElement("span");
  17. tp.className="fa fa-chevron-circle-up fa-2x top";
  18. tp.setAttribute("style","cursor: pointer; opacity:0; position: fixed; right: 40px; bottom: 25px; transition: opacity 0.7s;z-index: 999999;");
  19. document.body.appendChild(tp);
  20. //var tp=document.querySelector("span.top")
  21. tp.addEventListener('click',function(e){
  22. var sm=function(){
  23. if((document.body.scrollTop||document.documentElement.scrollTop)==0){
  24. return;
  25. }else{
  26. scroll(0,(document.body.scrollTop||document.documentElement.scrollTop)*0.9);
  27. setTimeout(sm,0.1);
  28. }
  29. };
  30. sm();
  31. },false)
  32. window.addEventListener("keydown", function(e) {
  33. if (e.altKey && e.keyCode == 84) {
  34. var sm=function(){
  35. if((document.body.scrollTop||document.documentElement.scrollTop)==0){
  36. return;
  37. }else{
  38. scroll(0,(document.body.scrollTop||document.documentElement.scrollTop)*0.9);
  39. setTimeout(sm,0.1);
  40. }
  41. };
  42. sm();
  43. }
  44. }, false);
  45. window.onscroll=function(){
  46. if((document.body.scrollTop||document.documentElement.scrollTop)>window.innerHeight/2){
  47. document.querySelector("span.top").style.opacity=0.8;
  48. document.querySelector("span.top").style.cursor="pointer";
  49. }else{
  50. document.querySelector("span.top").style.opacity=0;
  51. document.querySelector("span.top").style.cursor="initial";
  52. }
  53. }