From 85c832fcc6a6db39704d5256e38e3a6d4b7e08bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= <baris@nodebb.org> Date: Wed, 14 Nov 2018 00:21:27 -0500 Subject: [PATCH] add tooltip --- public/src/modules/navigator.js | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/public/src/modules/navigator.js b/public/src/modules/navigator.js index c1d6752cd2..87c139e30f 100644 --- a/public/src/modules/navigator.js +++ b/public/src/modules/navigator.js @@ -5,6 +5,7 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co var index = 1; var count = 0; var navigatorUpdateTimeoutId; + var tooltipEl; navigator.scrollActive = false; @@ -56,18 +57,26 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co } }); - $('.pagination-block.visible-xs').on('touchmove', function (e) { + $('.pagination-block.visible-xs').on('touchstart', function (e) { + $(this).tooltip('show'); + tooltipEl = $(this).next(); + var x = Math.min($(window).width(), Math.max(0, e.touches[0].clientX)); + updateTooltip(x); + }).on('touchmove', function (e) { e.preventDefault(); e.stopPropagation(); - var x = Math.min($(window).width(), Math.max(0, e.touches[0].clientX)); - var percent = x / $(window).width(); - var newIndex = Math.floor(count * percent); + var windowWidth = $(window).width(); + var x = Math.min(windowWidth, Math.max(0, e.touches[0].clientX)); + var percent = x / windowWidth; + var newIndex = Math.max(1, Math.floor(count * percent)); if (newIndex === index) { return; } index = newIndex; navigator.updateTextAndProgressBar(); + updateTooltip(x); }).on('touchend', function () { + $(this).tooltip('hide'); navigator.scrollToIndex(index - 1, true); }); @@ -77,6 +86,12 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co navigator.update(0); }; + function updateTooltip(x) { + var relIndex = getRelativeIndex(); + tooltipEl.find('.tooltip-inner').translateText('[[global:pagination.out_of, ' + relIndex + ', ' + count + ']]'); + tooltipEl.css({ left: Math.min($(window).width() - tooltipEl.width(), Math.max(x - (tooltipEl.width() / 2), 0)) }); + } + function handleKeys() { if (!config.usePagination) { $(window).off('keydown', onKeyDown).on('keydown', onKeyDown);