summaryrefslogtreecommitdiffstats
path: root/layouts/partials/scripts.html
blob: c47a474ddd1107635351f4268419acdc5dd6071f (plain) (blame)
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
82
83
84
85
86
87
88
{{ if and (.IsPage) (.Site.Params.utterancesComment) }}
<!-- comment loading indicator -->
<script>
    $(function () {
        var loadingBar = new ProgressBar.Circle("#loading-bar", {
            color: "#8AA2D3",
            strokeWidth: 15,
            trailColor: "#E5E2E4",
            trailWidth: 15,
            fill: "#E5E2E4"
        });
        loadingBar.animate(1.0, {
            duration: 10000
        });

        var commentStatus;
        var commentLoadingTime = 0;
        var commentCheckInterval = self.setInterval(checkUtterances, 500);

        function checkUtterances() {
            commentStatus = $("#post-comment .utterances").attr("style");
            if (commentStatus === undefined) {
                commentLoadingTime += 1;
                if (commentLoadingTime > 20) {
                    clearInterval(commentCheckInterval);
                    $("#post-comment").hide();
                    $("#post-loading p").text('{{ i18n "postCommentLoadingFailed" }}');
                }
                return;
            } else {
                clearInterval(commentCheckInterval);
                loadingBar.animate(1.0, {
                    duration: 500
                }, function () {
                    $("#post-loading").hide();
                });
            }
        }
    });
</script>
{{ end }}
{{ if .Site.Params.scrollTop }}
<!-- scroll to top button -->
<script>
    $(function () {
        var bar = new ProgressBar.Circle("#progress", {
            color: "#8AA2D3",
            strokeWidth: 10,
            trailColor: "#E5E2E4",
            trailWidth: 10,
            text: {
                value: '{{ partial "fas/fa-angle-up" . }}',
                style: null
            },
            fill: "#E5E2E4"
        });
        var scrolled = ($(window).scrollTop() / ($(document).height() - $(window).height() - 1));
        bar.animate(scrolled);
        $(window).scroll(function () {
            scrolled = ($(window).scrollTop() / ($(document).height() - $(window).height() - 1));
            if (scrolled < 0.0005) {
                scrolled = 0;
            } else if (scrolled > 1) {
                scrolled = 1;
            }
            bar.set(scrolled);
        });
    });
    $("#container-progress").click(function () {
        $("html, body").animate({
            scrollTop: 0
        }, "slow");
    });
</script>
{{ end }}
{{ if .Site.Params.webpChecker }}
<!-- webp checker -->
<script>
    $(function () {
        Modernizr.on("webp", function (result) {
            if (!result) {
                $('<blockquote><p>{{ i18n "webpCheckerFront" }}<a href="https://caniuse.com/#feat=webp" target="_blank">WebP</a>{{ i18n "webpCheckerEnd" }}</p></blockquote>')
                    .replaceAll("#content img");
            }
        });
    });
</script>
{{ end }}