summaryrefslogtreecommitdiff
path: root/layouts/blog_article.html
blob: 48a706498954973d8920728e88df0ceb8a2c04c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<!DOCTYPE html>
<html>
<head>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  <link rel="stylesheet" href="../../css/default.css">
  <link rel="stylesheet" href="../../css/blog_article.css">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/png" href="../../imgs/logo.png" /> 
  <title><%= @item[:title] %></title>
  <meta charset="UTF-8">
</head>
<body>

<nav class="topnav">
  <div class="progress-container">
    <div class="progress-bar" id="scrollindicator"></div>
  </div>
  <div>
  <%= link_to('ホーム', '/index.html', {class: 'left'}) %>
  <%= link_to('詳細', '/about.html', {class: 'right'}) %>
  <div class="outer-title"><div class="inner-title">水瓶 — <%= @item[:title] %></div></div>
  </div>
</nav>


<div id="wrapper">
<aside id="left"></aside>
<div class="art">
<div id="content">
    <%= get_content(yield) %>
</div>
</div>
    <div style="clear: both"></div>
    <div style="float: left;">日付: <%= @item[:created_at] %></div>
    <div style="float: right">タグ: <%= @item[:tags].join("・") %></div>
<aside id="right"><%= get_toc(yield) %></aside>
</div>

<footer></footer>
<script>
window.onscroll = function() { scrollUpdate(); sectionUpdate(); };

var section = document.querySelectorAll("div.section a.toc-backref");
var sectionLinks = document.querySelectorAll("div.contents a.reference");
var sections = {};
var i = 0;

Array.prototype.forEach.call(section, function(e) {
  sections[e.href.split('#')[1]] = e.offsetTop - 0.5 * document.documentElement.clientHeight;
});

Array.prototype.forEach.call(sectionLinks, function(e) {
  e.onclick = function () {
    setTimeout(function(){
      var scrollPosition = document.documentElement.scrollTop || document.body.scrollTop;
      window.scrollTo(0, scrollPosition - 48)
    }, 1);
  }
});

document.querySelector("div.contents a.reference").classList.add('active-section');

function scrollUpdate() {
  var winScroll = document.body.scrollTop || document.documentElement.scrollTop;
  var height = document.documentElement.scrollHeight - document.documentElement.clientHeight;
  var scrolled = (winScroll / height) * 100;
  document.getElementById("scrollindicator").style.width = scrolled + "%";
}

function sectionUpdate() {
  var scrollPosition = document.documentElement.scrollTop || document.body.scrollTop;
  for (i in sections) {
    if (sections[i] <= scrollPosition) {
      document.querySelector('.active-section').classList.remove('active-section');
      document.querySelector('a[id=' + i + ']').classList.add('class', 'active-section');
    }
  }
};
</script>
</body>
</html>