Browse Source

阅读体验优化,欢迎iOS用户添加到主屏幕

willin 7 years ago
parent
commit
e22e892fbd
4 changed files with 34 additions and 3 deletions
  1. 1 0
      README.md
  2. 31 2
      config.js
  3. 1 0
      index.html
  4. 1 1
      package.json

+ 1 - 0
README.md

@@ -41,6 +41,7 @@ iOS用户可以使用`Safari`将本书添加到主屏幕:
 ## CHANGELOG
 
 - TBD: //TODO: 诚意满满.文章越来越多,得将文章整理整理,把一些老旧的删除或者归档.再更新一些内容.只是最近特别忙,一直没更新.
+- 2017.06.26: 优化阅读体验,下一次回来的时候会自动跳转到上一次的位置继续阅读。欢迎iOS用户将本书添加到主屏幕
 - 2017.06.20: 将本书的网站从`GitBook`转移到了`Docsify`
 - 2016.08.03: 该项目创建
 

+ 31 - 2
config.js

@@ -1,3 +1,30 @@
+function getTimestamp() {
+  return parseInt(new Date() / 1000, 10);
+}
+function setReadState() {
+  localStorage.setItem('leader.url', location.href);
+  localStorage.setItem('leader.time', getTimestamp());
+  localStorage.setItem('leader.top', document.documentElement.scrollTop || document.body.scrollTop);
+  setTimeout(setReadState, 5000);
+}
+function getReadState() {
+  if (window.localStorage) {
+    var time = ~~localStorage.getItem('leader.time');
+    if (getTimestamp() - time > 300) {
+      var url = localStorage.getItem('leader.url');
+      if (url && location.href != url) {
+        location.href = url;
+        setTimeout(function () {
+          var top = ~~localStorage.getItem('leader.top');
+          window.scrollTo(0, top);
+        }, 300);
+      }
+      setTimeout(setReadState, 5000);
+    }
+  }
+}
+
+// Docsify配置
 window.$docsify = {
   name: '《团队领袖培养计划》',
   repo: 'https://github.com/js-cool/leader.js.cool.git',
@@ -35,11 +62,12 @@ window.$docsify = {
   plugins: [
     function (hook, vm) {
       hook.ready(function () {
-        mermaid.initialize({ startOnLoad: false });
+        if (mermaid) { mermaid.initialize({ startOnLoad: false }); }
         var adScript = document.createElement('script');
         adScript.src = '//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js';
         adScript.setAttribute('async', true);
         document.body.appendChild(adScript);
+        getReadState();
       });
       hook.beforeEach(function (md) {
         var url = 'https://github.com/js-cool/leader.js.cool/blob/master' + vm.route.file
@@ -50,7 +78,7 @@ window.$docsify = {
           + editUrl
       });
       hook.doneEach(function () {
-        mermaid.init(undefined, '.mermaid');
+        if (mermaid) { mermaid.init(undefined, '.mermaid') };
         var main = document.getElementById('main');
         var paragraphs = main.getElementsByTagName('p');
         var ads = [];
@@ -78,6 +106,7 @@ window.$docsify = {
     }
   }
 };
+// 离线浏览
 if (typeof navigator.serviceWorker !== 'undefined') {
   navigator.serviceWorker.register('sw.js');
 }

+ 1 - 0
index.html

@@ -23,6 +23,7 @@
 <body>
   <div id="app"></div>
   <script src="//unpkg.com/leader.js.cool"></script>
+  <!--<script src="/config.js"></script>-->
   <script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
   <script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
   <script src="//unpkg.com/prismjs/components/prism-bash.min.js"></script>

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "leader.js.cool",
-  "version": "3.0.0",
+  "version": "3.0.2",
   "description": "不可替代的团队领袖培养计划",
   "main": "config.js",
   "scripts": {