1/* GT mobile-fixes.js â план 13: деÑжаÑÑ Ð½Ð¸Ð¶Ð½ÑÑ ÑикÑ-Ð¿Ð°Ð½ÐµÐ»Ñ (.bottom-icons-panel) Ñ Ð ÐÐÐЬÐÐÐРниза 2 ÑкÑана на iOS Safari. ÐÑоблема: пÑи ÑвоÑаÑивании нижнего ÑÑлбаÑа Safari визÑалÑнÑй ÑкÑан 3 ÑÑановиÑÑÑ Ð²ÑÑе, а position:fixed;bottom:0 ÑеплÑеÑÑÑ Ðº пÑежней (layout) вÑÑоÑе â Ð¿Ð°Ð½ÐµÐ»Ñ Ð¿Ð¾Ð²Ð¸ÑÐ°ÐµÑ 4 вÑÑе наÑÑоÑÑего низа, оÑÑавлÑÑ Ð·Ð°Ð·Ð¾Ñ. ФикÑ: Ñдвигаем Ð¿Ð°Ð½ÐµÐ»Ñ Ð²Ð½Ð¸Ð· Ñовно на велиÑÐ¸Ð½Ñ Ð·Ð°Ð·Ð¾Ñа. 5 РабоÑÐ°ÐµÑ ÑолÑко пÑи налиÑии visualViewport и ÑеалÑного зазоÑа (>0). Ðа деÑкÑопе/ÑÑаÑÑÑ Ð±ÑаÑзеÑÐ°Ñ 6 и когда зазоÑа Ð½ÐµÑ â не Ð´ÐµÐ»Ð°ÐµÑ Ð½Ð¸Ñего. Rollback: ÑдалиÑÑ Ñайл + ÑÑÑÐ¾ÐºÑ AddHeadScript в header.php. */ 7(function (w, d) { 8 var vv = w.visualViewport; 9 if (!vv) return; // Ð½ÐµÑ API (деÑкÑоп/ÑÑаÑÑÑ) â вÑÑ Ð¾Ð´Ð¸Ð¼, поведение как бÑло 10 var raf = 0; 11 function apply() { 12 raf = 0; 13 var panel = d.querySelector('.bottom-icons-panel'); 14 if (!panel) return; 15 // Ð·Ð°Ð·Ð¾Ñ = наÑколÑко ÑеалÑнÑй видимÑй низ ниже, Ñем layout-низ (к коÑоÑÐ¾Ð¼Ñ Ð¿ÑиÑеплена панелÑ) 16 var gap = (vv.height + vv.offsetTop) - d.documentElement.clientHeight; 17 panel.style.transform = gap > 0.5 ? 'translate3d(0,' + Math.round(gap) + 'px,0)' : ''; 18 } 19 function update() { if (!raf) raf = w.requestAnimationFrame(apply); } 20 try { vv.addEventListener('resize', update); vv.addEventListener('scroll', update); } catch (e) {} 21 w.addEventListener('load', update); 22 if (d.readyState !== 'loading') update(); else d.addEventListener('DOMContentLoaded', update); 23})(window, document);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.