hexo-theme-fluid 1.9.8 → 1.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/README.md +7 -18
  2. package/_config.yml +35 -9
  3. package/languages/de.yml +4 -0
  4. package/languages/en.yml +4 -0
  5. package/languages/eo.yml +4 -0
  6. package/languages/es.yml +4 -0
  7. package/languages/ja.yml +4 -0
  8. package/languages/ru.yml +4 -0
  9. package/languages/zh-CN.yml +4 -0
  10. package/languages/zh-HK.yml +4 -0
  11. package/languages/zh-TW.yml +11 -7
  12. package/layout/_partials/comments/cusdis.ejs +33 -1
  13. package/layout/_partials/comments/disqus.ejs +6 -1
  14. package/layout/_partials/comments/waline.ejs +3 -3
  15. package/layout/_partials/footer/statistics.ejs +17 -0
  16. package/layout/_partials/header/banner.ejs +39 -3
  17. package/layout/_partials/header/navigation.ejs +74 -1
  18. package/layout/_partials/plugins/analytics.ejs +5 -0
  19. package/layout/_partials/plugins/typed.ejs +4 -0
  20. package/layout/_partials/post/copyright.ejs +1 -1
  21. package/layout/_partials/post/meta-top.ejs +7 -1
  22. package/layout/_partials/post/toc.ejs +66 -2
  23. package/layout/index.ejs +1 -0
  24. package/package.json +1 -1
  25. package/scripts/events/index.js +1 -0
  26. package/scripts/events/lib/footnote.js +11 -2
  27. package/scripts/events/lib/random-banner.js +45 -0
  28. package/scripts/filters/post-filter.js +24 -1
  29. package/scripts/helpers/wordcount.js +3 -6
  30. package/scripts/tags/fold.js +1 -1
  31. package/scripts/tags/note.js +1 -1
  32. package/source/css/_pages/_base/_widget/header.styl +97 -0
  33. package/source/css/_pages/_base/_widget/toc.styl +32 -1
  34. package/source/css/_pages/_base/base.styl +3 -0
  35. package/source/css/_pages/_base/keyframes.styl +8 -0
  36. package/source/img/random/default.png +0 -0
  37. package/source/js/color-schema.js +33 -20
  38. package/source/js/events.js +46 -1
  39. package/source/js/openkounter.js +173 -0
  40. package/source/js/umami-view.js +6 -4
  41. package/source/js/utils.js +11 -6
@@ -38,11 +38,15 @@ Fluid.utils = {
38
38
  elementVisible: function(element, offsetFactor) {
39
39
  offsetFactor = offsetFactor && offsetFactor >= 0 ? offsetFactor : 0;
40
40
  var rect = element.getBoundingClientRect();
41
- const viewportHeight = window.innerHeight || document.documentElement.clientHeight;
42
- return (
43
- (rect.top >= 0 && rect.top <= viewportHeight * (1 + offsetFactor) + rect.height / 2) ||
44
- (rect.bottom >= 0 && rect.bottom <= viewportHeight * (1 + offsetFactor) + rect.height / 2)
45
- );
41
+ var vh = window.innerHeight || document.documentElement.clientHeight;
42
+ var vw = window.innerWidth || document.documentElement.clientWidth;
43
+ var expandH = vh * offsetFactor;
44
+ var expandW = vw * offsetFactor;
45
+ // 判断元素矩形与视口(上下左右各扩展 offsetFactor 屏)是否有重叠
46
+ return rect.bottom > -expandH
47
+ && rect.top < vh + expandH
48
+ && rect.right > -expandW
49
+ && rect.left < vw + expandW;
46
50
  },
47
51
 
48
52
  waitElementVisible: function(selectorOrElement, callback, offsetFactor) {
@@ -62,6 +66,7 @@ Fluid.utils = {
62
66
  return;
63
67
  }
64
68
  if ('IntersectionObserver' in window) {
69
+ var margin = (window.innerHeight || document.documentElement.clientHeight) * offsetFactor + 'px';
65
70
  var io = new IntersectionObserver(function(entries, ob) {
66
71
  if (entries[0].isIntersecting) {
67
72
  callback();
@@ -69,7 +74,7 @@ Fluid.utils = {
69
74
  }
70
75
  }, {
71
76
  threshold : [0],
72
- rootMargin: (window.innerHeight || document.documentElement.clientHeight) * offsetFactor + 'px'
77
+ rootMargin: margin + ' 0px'
73
78
  });
74
79
  io.observe(element);
75
80
  } else {