octopress添加回到顶部按钮

时间:2023-03-09 02:51:41
octopress添加回到顶部按钮

准备回到顶部的png图片一枚,可以随自己喜好google。分享我的
octopress添加回到顶部按钮

取名top.png,保存在octopress/source/images/top.png

octopress/source/_includes/custom/目录下新建网页文件:totop.html

<!--返回顶部开始-->
<div id="full" style="width:0px; height:0px; position:fixed; right:80px; bottom:80px; z-index:100; text-align:center;
background-color:transparent; cursor:pointer;">
<a href="#" onclick="goTop();return false;"><img src="/images/top.png" border=0 alt="返回顶部"></a>
</div>
<script src="/javascripts/top.js" type="text/javascript"></script> <!--返回顶部结束-->

octopress/source/javascripts/目录下新建js文件: top.js

/**
* 回到页面顶部
* @param acceleration 加速度
* @param time 时间间隔 (毫秒)
**/
function goTop(acceleration, time) {
acceleration = acceleration || 0.1;
time = time || 16; var x1 = 0;
var y1 = 0;
var x2 = 0;
var y2 = 0;
var x3 = 0;
var y3 = 0; if (document.documentElement) {
x1 = document.documentElement.scrollLeft || 0;
y1 = document.documentElement.scrollTop || 0;
}
if (document.body) {
x2 = document.body.scrollLeft || 0;
y2 = document.body.scrollTop || 0;
}
var x3 = window.scrollX || 0;
var y3 = window.scrollY || 0; // 滚动条到页面顶部的水平距离
var x = Math.max(x1, Math.max(x2, x3));
// 滚动条到页面顶部的垂直距离
var y = Math.max(y1, Math.max(y2, y3)); // 滚动距离 = 目前距离 / 速度, 因为距离原来越小, 速度是大于 1 的数, 所以滚动距离会越来越小
var speed = 1 + acceleration;
window.scrollTo(Math.floor(x / speed), Math.floor(y / speed)); // 如果距离不为零, 继续调用迭代本函数
if(x > 0 || y > 0) {
var invokeFunction = "goTop(" + acceleration + ", " + time + ")";
window.setTimeout(invokeFunction, time);
}
}

然后把totop.html 引入到文件中,考虑到进到具体每一篇blog里面也有这个功能,我们把这个文件在foot.html中引入,修改:

octopress/source/_includes/custom/footer.html文件:

<div class="col-md-1">
<a href="/"><h4>Home</h4></a>
</div> <div class="col-md-2">
<div class="social-icon-list">
{% if site.twitter_user %}
<a href="https://twitter.com/{{site.twitter_user}}"><img src="/images/glyphicons_social_31_twitter.png"/></a>
{% endif %} {% if site.github_user %}
<a href="https://github.com/{{site.github_user}}"><img src="/images/glyphicons_social_21_github.png"/></a>
{% endif %} {% if site.linkedin_user %}
<a href="https://linkedin.com/in/{{site.linkedin_user}}"><img src="/images/glyphicons_social_17_linked_in.png"/></a>
{% endif %} {% if site.email %}
<a href="mailto:{{site.email}}"><img src="/images/glyphicons_social_39_e-mail.png"/></a>
{% endif %}
{% include custom/totop.html %}
</div>
</div> {% include end_footer.html %}

在终端执行:

rake generate;

rake preview;

网页中输入:http://localhost:4000/

可以看到预览效果,可以通过修改totop.html 中的div 中的部分修改top.png 的位置