Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Расширения для Google Chrome / Google Chrome Extensions

Модерирует : gyra, Maz

gyra (31-01-2018 23:38): Расширения для Google Chrome / Google Chrome Extensions  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

inile

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
// ==UserScript==
// @name         TopScroll
// @version       1
// @description  ЛКМ на левой границе страницы для прокрутки вверх. Повторный клик - возврат на исходную. ПКМ для прокрутки вниз и возврата.
// @include        *
// @namespace  http://forum.mozilla-russia.org/viewtopic.php?pid=719386#p719386
// ==/UserScript==
 
topScroll = {
 
    injectDiv: function() {
        var body = document.getElementsByTagName("body")[0];
        var div = document.createElement("div");
        div.id = "topscroll-chrome-extension-bar";
        div.setAttribute("style", "position: fixed !important; top: 0 !important; left: 0 !important; bottom: 0 !important; margin: 0 !important; padding: 0 !important; width: 5px !important; height: 100% !important; border-style: none !important; box-shadow: none !important; opacity: 0 !important; z-index: 2147483647 !important;");
        div.onclick = topScroll.scrollUp;
        div.oncontextmenu = topScroll.scrollDown;
        body.appendChild(div);
    },
 
    scrollUp: function() {
        if (window.pageYOffset === 0) {
            topScroll.scrollTo(topScroll.lastScrollPosition);
            topScroll.lastScrollPosition = 0;
        } else {
            topScroll.lastScrollPosition = window.pageYOffset;
            topScroll.scrollTo(0);
        }
    },
 
    scrollDown: function() {
        var bottomOffset = document.documentElement.scrollHeight - window.innerHeight;
        if (window.pageYOffset === bottomOffset) {
            topScroll.scrollTo(topScroll.lastScrollPosition);
            topScroll.lastScrollPosition = bottomOffset;
        } else {
            topScroll.lastScrollPosition = window.pageYOffset;
            topScroll.scrollTo(bottomOffset);
        }
        return false; // Prevent context menu appearing
    },
 
    scrollTo: function(endY) {
        var duration = 150;
        var startY = window.scrollY;
        var distance = Math.max(endY,0) - startY;
        var startTime = new Date().getTime();
        (function loopScroll() {
            setTimeout(function () {
                var p = Math.min((new Date().getTime() - startTime) / duration, 1); // Progress 0→1
                var y = Math.max(Math.floor(startY + distance*(p < 0.5 ? 2*p*p : p*(4 - p*2)-1)), 0);
                window.scrollTo(window.pageXOffset, y);
                if (p < 1) {
                    loopScroll();
                }
            }, 1)
        })();
    }
};
 
topScroll.injectDiv();

Всего записей: 1932 | Зарегистр. 29-06-2011 | Отправлено: 21:59 20-07-2016
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Расширения для Google Chrome / Google Chrome Extensions
gyra (31-01-2018 23:38): Расширения для Google Chrome / Google Chrome Extensions


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru