hexo next 主题 : 实现点击跳转到文章的时候文章的页面自动实现滚轮效果,向下滚动到阅读的位置。
个人博客:https://mmmmmm.me
源码:https://github.com/dataiyangu/dataiyangu.github.io
背景:
博主的博客希望实现能够在点击到某个文章的时候,跳转完了之后,页面能够自主的向下滚动到浏览的区域,因为博主的工作是搞java的,js方面在大一大二的时候搞过,有些东西忘记了,或者还没有接触到,有技术的盲区(可能对于阅读这篇文章的你来说有些可笑~),不管那么多,记录下来,以便以后维护。
上代码:
function article_top(){
//判断本次页面是否是文章,在我的hexo中,文章的页面是html的地址,是经过设置的,如果是初始的话,我记得好像是md结尾的,这里读者自行设置。
//console.log(window.location.pathname)
//打印出来的结果是http://localhost:4000/dayuhaitang.html中的dayuhaitang.html
var pathname = window.location.pathname
//获取我的头部的高度,下面会用到
var height = $(".header").css("height");
//判断是否是文章的页面
if (pathname.indexOf("html")>0) {
//使用animate函数进行动态的滚动效果
//2018.12.7进行修改,将下面的$("html,body")改为了$("html,article"),因为页面中有fixed的div,会影响到他们~
$("html,article").animate({scrollTop:height},500)
}
}
//给滚动效果的函数设定timeout函数,这个函数有很大的作用,在下面我会详细的讲解。
setTimeout(article_top,800);
这个简单的函数中遇到的问题:
判断是否是文章的页面
var pathname = window.location.pathname
这个不难google一下就出来了,主要是想到通过什么来判断
滚动函数
$("html,body").animate({scrollTop:height},500)
这个函数我查了好久,浏览w3c等网站均未实现。
最后通过这篇文章实现了:http://caibaojian.com/jquery-scrollto.html
感谢!
问题:需要在body前面加heml,就是一个父类吧
实现滚动后,滚动条会不断的上下跳动,页面闪烁。
背景:
这个问题,调试了一下午,聪明的我一定也想到了,在我的next主题中一定设置了(官方自己设置的)如果是文章页面会自动滚动到顶部,而我的hexo next中加入了require函数,以便实现提升加载速度,因为require是异步加载的,所以我的函数和系统预置的函数会出现执行顺序抢夺的问题,就会出现似上非上,似下非下的不断跳动闪烁的情况,有时候出现有时候不出现,虽然只是很短的时间,但是对于页面的效果有不小的影响。
我试图阅读源码,修改官方的函数,但是发现真的找不到,包括从页面打断点调试,能力有限好吧。
上百度,上google,发现有类似的问题。博文地址:https://blog.csdn.net/cen_cs/article/details/79018061 , 当然并并没有很好的解决我的问题,但是有不小的启发,因为timeout在js和jq中实现的方式是不一样的。
通过阅读相关的文档,对于timeout函数有了一定的理解:就是在等待了设定的指定时间后在执行自己的函数
对于timeout的规范写法参考的文章:https://blog.csdn.net/qq_39098813/article/details/80746465
收获:
通过以上的分析,如果读者读到了这里,(如果是和我一样的小白的话)相信您一定或多或少有一定的收获吧。
写给读者的话:
如果读者发现了代码中有错误的地方,(虽然只有几行),请您一定及时的联系我,大家共同进步!
hexo next 主题 : 实现点击跳转到文章的时候文章的页面自动实现滚轮效果,向下滚动到阅读的位置。的更多相关文章
- Hexo NexT主题添加点击爱心效果
给NexT主题内添加页面点击出现爱心的效果 创建js文件 在/themes/next/source/js/src下新建文件clicklove.js,接着把该链接下的代码拷贝粘贴到clicklove.j ...
- hexo next主题中关于pc端点击链接没问题,移动端点击链接页面不显示。
个人博客:https://mmmmmm.me 源码:https://github.com/dataiyangu/dataiyangu.github.io 背景 hexo next主题,本人diy的时候 ...
- Hexo NexT主题/cnblog等博客增加点击出现红心的特效
查看效果 每日前端 我的博客 实现:1.下载这段js代码到项目目录 ===>下载地址2.在需要的地方添加js代码 <script type="text/javascript&qu ...
- hexo next主题深度优化(一),加入pjax功能。
文章目录 背景: 进入正题 pjax初体验--instantclick 真正的pjax 第一步 第二步 第三步 第四步 专门基于hexo next主题的pjax(将丢失的js效果重现) 将下面讲到的提 ...
- hexo多主题切换
今天看到一个朋友在github上面的issue 大概问题就是怎么在不同的电脑上面使用 git有个这么个东西Submoudle中文叫做子模块 具体使用教程看这里Git-工具-子模块 这里只说怎么搞hex ...
- hexo next主题深度优化(十一),next主题中加入scrollReveal.js,让文章随着鼠标的滚动,出现点小动作。
文章目录 效果 scrollReveal简单介绍以及简单操作 参考文档: next主题中加入scrollReveal 给article标签添加属性 给底部的不蒜子添加属性 本地引入依赖并且编写启动函数 ...
- hexo next主题深度优化(六),使用hexo-neat插件压缩页面,大幅度提升页面性能和响应速度。
文章目录 隆重感谢: 背景 开始 试水 成功的案例 安装插件,执行命令. hexo _config.yml文件添加 坑 跳过压缩文件的正确配置方式 压缩html时不要跳过.md文件 压缩html时不要 ...
- hexo next主题深度优化(五),评论系统换成gittalk
文章目录 背景: 开始: 新建comments_git.js 找到comments.swig在最后一个endif之前 引入代码 pjax加入gitalk 遇到的问题 所有的页面共享的一个评论issue ...
- Hexo、主题、部署上线
Hexo.主题.部署上线 安装Hexo git和nodejs安装好后,就可以安装hexo了,你可以先创建一个文件夹MyBlog,用来存放自己的博客文件,然后cd到这个文件夹下(或者在这个文件夹下直接右 ...
随机推荐
- 前端之script标签注意事项
在一对script 标签中一旦有错误,其后续的代码都不会执行 一对script标签有问题,不会影响其他script标签代码的执行 当一对script标签的作用是引入外部的js文件的时候,就不要在其内部 ...
- Sql Server 小知识不断扩充中
1. char.varchar.nvarchar 区别 char 定长字符数据长度8000字符,小于8000字符时以空格填充. varchar 变长字符数据最大长度8000,小于8000字符时不会以 ...
- Nginx集群配置启动报错
- NX二次开发-UF_MODL_ask_distance_tolerance获取建模的长度公差
NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_ui.h> UF_initialize() ...
- Hadoop国内主要发行版本
Hadoop主要版本 目前国内使用的不收费的Hadoop版本主要包括以下3个: Apache hadoop Cloudera的CDH Hortonworks版本(Hortonworks Data Pl ...
- 洛谷P3916 图的遍历
题目链接:https://www.luogu.org/problemnew/show/P3916 题目大意 略. 分析 以终为始,逆向思维. 代码如下 #include <bits/stdc++ ...
- 消息中间件kafka学习记录
目录 1. 概述 2. 环境准备 3. 命令行常用命令 4. java api实现 1. 概述 Apache Kafka是一个分布式消息系统,凭借其优异的特性而被广泛使用. 高性能:O(1)复杂度消息 ...
- 采用多个数据源是Spring的配置
XML配置多多源文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="h ...
- delphi 实现最小化系统托盘(rz控件最简单 评论)
1.new -->application 2.在form1中加入一个tPopMenu 命名为pm1 3.uses ShellAPI; 4.定义一个常量在 const WM_TRAYMSG = W ...
- python 17 异常
自 http://www.cnblogs.com/BeginMan/p/3171445.html 一.什么是错误,什么是异常,它们两者区别 这里解释如下:个人觉得很通俗易懂 错误是指在执行代码过程中发 ...