From 797ee7c38aa90083e69afe36feafa0019dcdafbd Mon Sep 17 00:00:00 2001 From: xuexb Date: Sun, 3 Apr 2016 00:43:46 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E4=B8=AD=E6=9C=89=E5=8F=8C=E5=B1=82=E9=94=9A=E7=82=B9=E6=97=B6?= =?UTF-8?q?=E4=B8=8A=E4=B8=8B=E4=B8=80=E7=AB=A0=E6=8C=89=E9=92=AE=E6=AD=BB?= =?UTF-8?q?=E9=93=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/ditto.js | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/js/ditto.js b/js/ditto.js index 1841abe..b40793d 100644 --- a/js/ditto.js +++ b/js/ditto.js @@ -18,6 +18,30 @@ var ditto = { run: initialize }; +/** + * 获取当前hash + * + * @param {string} hash 要解析的hash,默认取当前页面的hash,如: nav#类目 => {nav:nav, anchor:类目} + * @description 分导航和页面锚点 + * @return {Object} {nav:导航, anchor:页面锚点} + */ +var getHash = function (hash) { + hash = hash || window.location.hash.substr(1); + + if (!hash) { + return { + nav: '', + anchor: '' + } + } + + hash = hash.split('#'); + return { + nav: hash[0], + anchor: decodeURIComponent(hash[1] || '') + } +}; + var disqusCode = '

留言

'; var menu = new Array(); @@ -56,16 +80,18 @@ function init_sidebar_section() { menu.push(this.href.slice(this.href.indexOf('#'))); }); $('#pageup').on('click', function() { + var hash = getHash().nav; for (var i = 0; i < menu.length; i++) { - if (location.hash === '') break; - if (menu[i] === location.hash) break; + if (hash === '') break; + if (menu[i] === '#' + hash) break; } location.hash = menu[i - 1] }); $('#pagedown').on('click', function() { + var hash = getHash().nav; for (var i = 0; i < menu.length; i++) { - if (location.hash === '') break; - if (menu[i] === location.hash) break; + if (hash === '') break; + if (menu[i] === '#' + hash) break; } location.hash = menu[i + 1]; }); @@ -260,7 +286,7 @@ function show_loading() { return loading; } -function router() { +function router() { var path = location.hash.replace(/#([^#]*)(#.*)?/, './$1'); var hashArr = location.hash.split('#'); From 072df734f1fb22e2c2ba9f22d84e848c01bbf0bc Mon Sep 17 00:00:00 2001 From: xuexb Date: Sun, 3 Apr 2016 00:47:15 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E9=93=BE=E6=8E=A5?= =?UTF-8?q?=E4=B8=AD=E6=9C=89=E5=8F=8C=E5=B1=82=E9=94=9A=E7=82=B9=E6=97=B6?= =?UTF-8?q?=E6=9C=80=E5=90=8E=E7=AB=A0=E9=A1=B5=E9=9D=A2=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=88=A4=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/ditto.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/js/ditto.js b/js/ditto.js index b40793d..a5b00eb 100644 --- a/js/ditto.js +++ b/js/ditto.js @@ -373,14 +373,13 @@ function router() { } } } - - if (location.hash === '' || location.hash === menu[0]) { + if (location.hash === '' || '#' + getHash().nav === menu[0]) { $('#pageup').css('display', 'none'); } else { $('#pageup').css('display', 'inline-block'); } - if (location.hash === menu[(menu.length - 1)]) { + if ('#' + getHash().nav === menu[(menu.length - 1)]) { $('#pagedown').css('display', 'none'); } else { $('#pagedown').css('display', 'inline-block');