您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
NO LONGER MAINTAINED
// ==UserScript== // @name grease.nicescroll // @namespace nicescroll // @description NO LONGER MAINTAINED // @version 1.96.1 // @include * // @license MIT // ==/UserScript== (function(){ function main() { var win = window; var nice = false; var j = false; var head = document.getElementsByTagName('head')[0]||document.documentElement; var href = window.location.href; var isfacebook = /\.facebook\.com(\/|$)/.test(href); var fbPlug = /\.facebook\.com\/plugins(\/|$)/.test(href); var isgoogle = /\.google\./.test(href); var isgithub = /(\/|\.)github.com(\/|$)/.test(href); var istwitter = /(\/|\.)twitter.com(\/|$)/.test(href); var lastcheck = false; function checkPage() { if(!nice) return true; var pg = nice.getContentSize(); if (lastcheck) { if ((lastcheck.h!=pg.h)||(lastcheck.w!=pg.w)) nice.resize(); } lastcheck = pg; setTimeout(checkPage,2000); }; function loadScript(src,fn) { var sc = document.createElement('script'); sc.src = src; sc.type = 'text/javascript'; if (fn) sc.addEventListener("load",fn,true); head.appendChild(sc); }; function waitFor(chk,fn,delay) { var ret = chk(); delay = delay||false; if (!delay&&ret) { fn.call(ret); } else { setTimeout(function(){waitFor(chk,fn)},delay||50); } }; function getScrollable() { var hasbody = j('body').css('overflow-y')||j('body').css('overflow')||false; return j((hasbody&&/scroll|auto/i.test(hasbody)) ? 'body' : 'html'); }; function allScrollables() { var lst = []; j('div').each(function(){ var a = j(this); if (/scroll|auto/.test(a.css('overflowY'))) lst.push(a); }); return lst; }; function attachEvent(el,ev,targ,fn) { if (el.on) { // 1.7+ el.on(ev,targ,fn); } else if (el.delegate) { // pre 1.7 el.delegate(targ,ev,fn); } else { console.info('no event support'); } }; function loadNS() { j = win.jQuery; if (typeof j.fn.niceScroll == "undefined") { loadScript( 'http://areaaperta.com/nicescroll/js/jquery.nicescroll.min.js', function() { var scroll = getScrollable(); j('textarea').css('overflow-y','auto'); if (isfacebook != fbPlug) { j('div.fbChatSidebar').css('margin-right','10px'); nice = j('html').niceScroll({'cursorcolor':'#555555','cursoropacitymax':0.6,'cursorminheight':40}); // facebook style! j('body').css('overflowY','hidden'); j('#fbNotificationsFlyout').this.niceScroll().hide(); (j(".plugin")||j(".transparent_widget")).this.niceScroll().hide(); var fbscrollable = function(tm) { setTimeout(function(){ waitFor( function() { var me = j('div.scrollable'); return (me.length) ? me : false; }, function() { var nn = this.niceScroll({cursorcolor:'#6D84B4'}); this.mouseenter(function(){ nn.resize().show(); }); this.mouseleave(function(){ nn.hide(); }); } ); },tm||0); }; j("#fbDockChat").click(function(){fbscrollable(500);}); attachEvent(j('div.fbNubFlyoutBodyContent'),'mouseup','li.item',function(){fbscrollable(1000);}); fbscrollable(0); } else if (istwitter) { nice = scroll.niceScroll({cursorcolor:'#0084B4',railoffset:{left:-2}}); } else if (isgoogle) { nice = scroll.niceScroll(); if (/\/plus\./.test(href)) { /* setTimeout(function(){ allScrollables().map(function(d){ var c = d.children(); j('iframe#js').contents().find('body').css('margin-right','8px'); d.niceScroll(c,{hwacceleration:false}); }); },600); } else if (/\/mail\./.test(href)) { nice.hide(); waitFor( function() { var me = j("#canvas_frame").contents().find('div.aeJ'); //messages return (me.length) ? me : false; }, function() { this.css('margin-right','14px'); this.niceScroll({cursorcolor:'#999999'}); } ); waitFor( function() { var me = j("#canvas_frame").contents().find('div.akc'); // left chat return (me.length) ? me : false; }, function() { var nn = this.niceScroll({cursorcolor:'#999999'}); this.mouseenter(function(){ nn.resize(); }); } ); waitFor( function() { var me = j("#canvas_frame").contents().find('div.akj'); //chat labs version return (me.length) ? me : false; }, function() { var nn = this.niceScroll({cursorcolor:'#999999',railoffset:{left:-10}}); this.mouseenter(function(){ nn.resize(); }); } ); } else if (/\/calendar\//.test(href)) { waitFor( function() { var me = j("#scrolltimedeventswk"); return (me.length) ? me : false; }, function() { this.niceScroll(); } ); waitFor( function() { var me = j("#gridcontainer"); return (me.length) ? me : false; }, function() { this.niceScroll(); } ); */ } else { j('input[name="q"]').keyup(function(){ setTimeout(function(){nice.resize();},1000); }); } } else if (j('body[data-twttr-rendered="true"]')) { nice = scroll.niceScroll(); } else { nice = scroll.niceScroll(); } checkPage(); } ); } }; var jq = false; var oldjq = false; if (istwitter) { waitFor( function() { return (typeof win.jQuery!="undefined"); }, function() { checkLib(); } ); } else { checkLib(); }; function checkLib() { jq = (typeof win.jQuery == 'undefined') ? false : win.jQuery; oldjq = win.$||false; if (!jq||!jq.cssHooks) { loadScript( 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js', function() { win.jQuery.noConflict(); if (oldjq) win.$ = oldjq; loadNS(); } ); } else { loadNS(); }; } }; var script = document.createElement('script'); script.appendChild(document.createTextNode('('+ main +')();')); (document.body || document.head || document.documentElement).appendChild(script); })();