您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
for stick header of table when scrolling
// ==UserScript== // @name Lamptest pinned header of table // @name:ru Прилепленный заголовок таблицы для результатов тестирования ламп Lamptest // @description:ru При прокрутке страницы и уходе заголовка из вьюпорта становится видимым прилепленный заголовок // @grant none // @version 2.2019.4.29 // @namespace spmbt.github.com // @include http://lamptest.ru/* // @include https://lamptest.ru/* // @description for stick header of table when scrolling // ==/UserScript== d=document; $q=(q,E)=>(E||d).querySelector(q); $qA=(q,E)=>(E||d).querySelectorAll(q); $x=(E,h,i)=>{if(h)for(i in h)E[i]=h[i];return E}; $e=(g,el,cl,ht,at,x,o)=>{ //===создать или использовать имеющийся элемент=== if(el)g.el=el; if(cl)g.cl=cl; if(ht)g.ht=ht; //(оптимизации записей на позиционные) o = g.el = g.el|| g.clone && g.clone.cloneNode(!0)||'DIV'; o = g.el = typeof o =='string'? /\W/.test(o) ? $q(o, g.blck) : d.createElement(o) : o; if(o){ if(g.cl) o.className = g.cl; if(g.cs) $x(o.style, g.cs); if(g.ht || g.at){at = g.at ||{}; if(g.ht) at.innerHTML = g.ht;} if(at) for(x in at){ if(x=='innerHTML') o[x] = at[x]; else o.setAttribute(x, at[x]);} if(g.ap) o.appendChild(g.ap); g.apT && g.apT.appendChild(o); g.aft && ((x=g.aft.nextSibling)?g.aft.parentNode.insertBefore(o,x):g.aft.parentNode.appendChild(o)); g.remove && g.remove.parentNode.removeChild(g.remove); } return o}; var $tFix, wW, wX, $tNL, $TQuery = '#ajax_search_results', $T0 = $q($TQuery), $T; setInterval(() => { $T0 = $q($TQuery); if(!$T0) return; $T = $T0; if(wW !== innerWidth || wX !== pageXOffset || !$qA('.tFix').length) wW = innerWidth, wX = pageXOffset, $sav = $q('.tFix tr:not(:first-child)'), $THCopy = $qA('th', $q('#ajax_results_table', $T)), $tFix = $e({cs:{position:'fixed', top:0, left: $T.getBoundingClientRect().x +'px', minWidth:'120px', minHeight:'20px', maxWidth:'none', width: ($T.offsetWidth + $THCopy.length * 2 - 5)+'px', paddingBottom:'1px', background:'rgba(183, 191, 234, 0.85)', fontSize:'0.8em'}, apT:$q('body')},'TABLE','tFix','<tr style="text-align: center"></tr>'), $THCopy.forEach(el => $e({el:$q('tr', $tFix), ap: $e({clone: el, cs: {width: el.offsetWidth +'px', border:'1px solid #D5D5D5'}}) })), $e({aft: $sav},$q('tr', $tFix)); if(($tNL = $qA('.tFix:not(:last-child)')).length) $e({remove: $tNL[0]}); $e({cs:{display: $qA('tr', $tFix).length > 1 || $T.getBoundingClientRect().y < 0 ?'block':'none'}},$tFix); }, 1330);