您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
simple script do scroll to top at header (*.kaskus.co.id)
当前为
// ==UserScript== // @name Kaskus-Head-Scroller // @namespace http://userscripts.org/scripts/show/Kaskus-Head-Scroller // @include *.kaskus.co.id/* // @version 0.1 // @dtversion 1404260001 // @timestamp 1398534731798 // @description simple script do scroll to top at header (*.kaskus.co.id) // @author tuxie.forte; // @license (CC) by-nc-sa 3.0 // // -!--latestupdate // // v0.1 - 2014-04-26 // init // // -/!latestupdate--- // // // // ==/UserScript== // (function(){ // Initialize Global Variables var gvar=function() {}; /* window.alert(new Date().getTime()); */ //========-=-=-=-=--========= gvar.__DEBUG__ = !1; // development //========-=-=-=-=--========= // ===== // START function start_Main(){ var $el = $D(gvar.target_selector); if( !$el ){ clog('missing target node'); return; } if( !gvar.is_mobile ) $el = $el[0]; else{ GM_addGlobalStyle(rSRC.getMobCSS_patch(), 'patch_head', 1); if( $D('#mqr-content-wrapper') ){ // mqr already has something todo w/ design and event } else{ GM_addGlobalStyle(rSRC.getMobCSS(), 'fixed_head', 1); Dom.Ev(window, 'scroll', function(){ var nVScroll = document.documentElement.scrollTop || document.body.scrollTop, el_ = $D('#site-header'); if( nVScroll > 0 ){ !hasClass('fx', el_) && addClass('fx', el_); } else{ removeClass('fx', el_); } }); } } if( $el ) _o('click', $el, function(e){ var el = e.target||e; if(el && el.nodeName == 'A') return !1; nat_scrollTo(document.body, 0, 234); }); } // - // - // - // - //========= // code below should adapting current QR Engine for this plugins works // leave code below as wot it is, as long you know what todo //========= Common Functions && Global Var Init ==== // static routine function isDefined(x) { return !(x == null && x !== null); } function isUndefined(x) { return x == null && x !== null; } function isString(x) { return (typeof(x)!='object' && typeof(x)!='function'); } function trimStr(x) { return (typeof(x)=='string' && x ? x.replace(/^\s+|\s+$/g,"") : '') }; function _o(m,e,f){Dom.Ev(e,m,function(e){typeof(f)=='function'?f(e):void(0)});} function hasClass(cName, Obj){ if(cName=="" || !cName) return; var re, cCls = (Obj.className ? Obj.className : ''); if( !cCls ) return !1; else{ re = new RegExp('\\b'+cName+'\\b', "i"); return re.test( cCls ); } } function addClass(cName, Obj){ if(cName=="") return; var neocls = (Obj.className ? Obj.className : ''); if(neocls.indexOf(cName)!=-1) return; neocls+=(neocls!=''?' ':'')+cName; Obj.setAttribute('class', neocls); } function removeClass(cName, Obj){ if(!cName || !Obj) return; var neocls, rmvclss = getAttr('class', Obj); neocls = getAttr('class', Obj); rmvclss = cName.split(' '); for(var i=0; i<rmvclss.length; ++i) neocls = neocls.replace(rmvclss[i], ''); neocls = trimStr(neocls); setAttr('class', neocls, Obj); } function createTextEl(a) { return document.createTextNode(a) } function createEl(type, attrArray, html){ var node = document.createElement(type); for (var attr in attrArray) if (attrArray.hasOwnProperty(attr)) node.setAttribute(attr, attrArray[attr]); if(html) node.innerHTML = html; return node; } function getAttr(name, Obj){ if("string" === typeof name && "object" === typeof Obj && Obj) return Obj.getAttribute(name)||''; else return; } function setAttr(name, value, Obj){ if("string" === typeof name && "object" === typeof Obj) return Obj.setAttribute(name, value); } var GM_addGlobalStyle = function (a, b, c) { var d, e; if (a.match(/^https?:\/\/.+/)) { d = createEl("link", { type: "text/css", rel:'stylesheet', href:a }); }else{ d = createEl("style", { type: "text/css" }); d.appendChild(createTextEl(a)); } if (isDefined(b) && isString(b)) d.setAttribute("id", b); if (isDefined(c) && c) { document.body.insertBefore(d, document.body.firstChild) } else { e = document.getElementsByTagName("head"); if (isDefined(e[0]) && e[0].nodeName == "HEAD") gvar.$w.setTimeout(function () { e[0].appendChild(d) }, 100); else document.body.insertBefore(d, document.body.firstChild) } return d }; // Get Elements var $D = function (q, root, single) { if (root && typeof root == 'string') { root = $D(root, null, true); if (!root) { return null; } } if( !q ) return false; if ( typeof q == 'object') return q; root = root || document; if (q[0]=='/' || (q[0]=='.' && q[1]=='/')) { if (single) { return document.evaluate(q, root, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue; } return document.evaluate(q, root, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null); } else if (q[0]=='.') { return root.getElementsByClassName(q.substr(1)); } else { return root.getElementById( (q[0]=='#' ? q.substr(1):q.substr(0)) ); } return root.getElementsByTagName(q); }; // utk add - remove element var Dom = { g: function(el) { if(!el) return false; return ( isString(el) ? document.getElementById(el) : el ); }, add: function(el, dest) { var el = this.g(el); var dest = this.g(dest); if(el && dest) dest.appendChild(el); }, remove: function(el) { var el = this.g(el); if(el && el.parentNode) el.parentNode.removeChild(el); }, Ev: function() { if (window.addEventListener) { return function(el, type, fn, ph) { if(typeof(el)=='object') this.g(el).addEventListener(type, function(e){fn(e);}, (isUndefined(ph) ? false : ph)); }; }else if (window.attachEvent) { return function(el, type, fn) { var f = function() { fn.call(this.g(el), window.event); }; this.g(el).attachEvent('on' + type, f); }; } }() }; // native scrollTo function nat_scrollTo(element, to, duration) { var start = element.scrollTop, change = to - start, currentTime = 0, increment = 20; var animateScroll = function(){ currentTime += increment; var val = Math.easeInOutQuad(currentTime, start, change, duration); element.scrollTop = val; if(currentTime < duration) { setTimeout(animateScroll, increment); } }; animateScroll(); } //t = current time //b = start value //c = change in value //d = duration Math.easeInOutQuad = function (t, b, c, d) { t /= d/2; if (t < 1) return c/2*t*t + b; t--; return -c/2 * (t*(t-2) - 1) + b; }; var rSRC = { getMobCSS: function(){ return '' +'#site-header.fx{ position:relative}' +'#site-header.fx #site-nav{ width:620px;position:fixed;top:0;z-index:99999}' +'#site-header.fx .main-h.r{margin-top:30px}' ; }, getMobCSS_patch: function(){ return '' +'#site-nav h1{ text-align:left}' +'#site-nav h1 > a{ display:inline-block; height:25px;}' ; } }; // ----my ge-debug-------- function show_alert(msg, force) { if(arguments.callee.counter) { arguments.callee.counter++; } else { arguments.callee.counter=1; } GM_log('('+arguments.callee.counter+') '+msg); if(force==0) { return; } } function clog(msg) { if(!gvar.__DEBUG__) return; show_alert(msg); } // -end static //========= function init(){ gvar.is_mobile = /^https?:\/\/m\.kaskus\./i.test(location.href); gvar.head_id_desktop = 'site-header'; gvar.head_class_mobile = 'meta-header'; gvar.target_selector = (gvar.is_mobile ? '#'+gvar.head_id_desktop : '.meta-header'); start_Main(); } // ------ init(); })() /* tF. */
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址