// ==UserScript== // @name 平滑的滚动到顶部/底部 // @author burningall // @description 为网页增加滚到顶部和底部按钮 // @version 2015.3.24-1.5 // @include http://* // @include https://* // @include ftp://* // @supportURL http://www.burningall.com // @contributionURL troy450409405@gmail.com|alipay.com // @namespace https://greasyfork.org/zh-CN/users/3400-axetroy // @downloadURL none // ==/UserScript== function addEvent(obj, event, fn) { return obj.addEventListener ? obj.addEventListener(event, fn, false) : obj.attachEventListener("on" + event, fn); }; function getScrollHeight() { return document.body ? bodyScrollHeight = document.body.scrollHeight: document.documentElement.scrollHeight; }; function getClientHeight() { return document.documentElement ? document.documentElement.clientHeight: document.body.clientHeight; }; function hasScroll() { var hasScroll; return getScrollHeight() > getClientHeight() ? hasScroll = 1 : hasScroll = 0; }; (addEvent(window.top, "load", function() { if (hasScroll() == 1) { function $(id) { return document.getElementById(id); } function getStyle(obj, attr) { return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj)[attr]; } function getScrollTop() { return document.documentElement.scrollTop ? document.documentElement.scrollTop: document.body.scrollTop; } function getClientHeight() { return document.documentElement ? document.documentElement.clientHeight: document.body.clientHeight; } function createElement(tagName, idName, styleList, appendPosition, endFn) { var newElement = document.createElement(tagName); newElement.id = idName; newElement.style.cssText = styleList; appendPosition && appendPosition.appendChild(newElement); endFn && endFn(); } function doMove(obj, attr, dir, target, endFn) { dir = parseInt(getStyle(obj, attr)) < target ? dir: -dir; clearInterval(obj.timer); obj.timer = setInterval(function() { var speed = parseInt(getStyle(obj, attr)) + dir; if (speed > target && dir > 0 || speed < target && dir < 0) { speed = target; } obj.style[attr] = speed + "px"; if (speed == target) { clearInterval(obj.timer); endFn && endFn(); } }, 30); } createElement("div", "scrollMars-troy", "width:100px;height:120px;position:fixed;right:20px;top:200px;z-index:9999;", document.documentElement); $("scrollMars-troy").innerHTML = "
"; var scrollStyle = "width:40px;height:40px;text-align:center;padding:5px;margin:5px auto;background:#303030;color:#fff;display:block;opacity:0.7;fitter:alpha(opacity:80);cursor:pointer;border-radius:50%;box-shadow:2px 2px 40px 2px #303030;font-size:16px;z-index:9999;"; $("goTop-troy").style.cssText = scrollStyle; $("goBtn-troy").style.cssText = scrollStyle; $("goTop-troy").innerHTML = "顶