个人博客: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 主题 : 实现点击跳转到文章的时候文章的页面自动实现滚轮效果,向下滚动到阅读的位置。的更多相关文章

  1. Hexo NexT主题添加点击爱心效果

    给NexT主题内添加页面点击出现爱心的效果 创建js文件 在/themes/next/source/js/src下新建文件clicklove.js,接着把该链接下的代码拷贝粘贴到clicklove.j ...

  2. hexo next主题中关于pc端点击链接没问题,移动端点击链接页面不显示。

    个人博客:https://mmmmmm.me 源码:https://github.com/dataiyangu/dataiyangu.github.io 背景 hexo next主题,本人diy的时候 ...

  3. Hexo NexT主题/cnblog等博客增加点击出现红心的特效

    查看效果 每日前端 我的博客 实现:1.下载这段js代码到项目目录 ===>下载地址2.在需要的地方添加js代码 <script type="text/javascript&qu ...

  4. hexo next主题深度优化(一),加入pjax功能。

    文章目录 背景: 进入正题 pjax初体验--instantclick 真正的pjax 第一步 第二步 第三步 第四步 专门基于hexo next主题的pjax(将丢失的js效果重现) 将下面讲到的提 ...

  5. hexo多主题切换

    今天看到一个朋友在github上面的issue 大概问题就是怎么在不同的电脑上面使用 git有个这么个东西Submoudle中文叫做子模块 具体使用教程看这里Git-工具-子模块 这里只说怎么搞hex ...

  6. hexo next主题深度优化(十一),next主题中加入scrollReveal.js,让文章随着鼠标的滚动,出现点小动作。

    文章目录 效果 scrollReveal简单介绍以及简单操作 参考文档: next主题中加入scrollReveal 给article标签添加属性 给底部的不蒜子添加属性 本地引入依赖并且编写启动函数 ...

  7. hexo next主题深度优化(六),使用hexo-neat插件压缩页面,大幅度提升页面性能和响应速度。

    文章目录 隆重感谢: 背景 开始 试水 成功的案例 安装插件,执行命令. hexo _config.yml文件添加 坑 跳过压缩文件的正确配置方式 压缩html时不要跳过.md文件 压缩html时不要 ...

  8. hexo next主题深度优化(五),评论系统换成gittalk

    文章目录 背景: 开始: 新建comments_git.js 找到comments.swig在最后一个endif之前 引入代码 pjax加入gitalk 遇到的问题 所有的页面共享的一个评论issue ...

  9. Hexo、主题、部署上线

    Hexo.主题.部署上线 安装Hexo git和nodejs安装好后,就可以安装hexo了,你可以先创建一个文件夹MyBlog,用来存放自己的博客文件,然后cd到这个文件夹下(或者在这个文件夹下直接右 ...

随机推荐

  1. 初识webSocket及其使用

    阅读目录 1.什么是webSocket? 2.webSocket实现原理 3.webSocket优点 4.webSocket和socket的区别 5.webSocket API 6.webSocket ...

  2. 改变this 指向的3种方法

    1.在函数内部声明一个that,然后将this赋值给that, var that=this; 最后用that 代替this使用 <!DOCTYPE html> <html lang= ...

  3. git基础1

    git:     团队协作开发     版本管理      创建项目的文档     初始化   编写项目   把文件add到git仓库,其实是放到了git的代码暂存区   工作区有一个隐藏目录 .gi ...

  4. HDU4578-代码一点都不长的线段树

    (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 题意:传送门  原题目描述在最下面.  4种操作,1:区间加法,2:区间乘法,3:区间的所有数都变成一个数,4:访问区间每个数的p次方 ...

  5. python从入门到大神---1、初始化实例、类属性、方法

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

  6. AtCoder ABC 131E Friendships

    题目链接:https://atcoder.jp/contests/abc131/tasks/abc131_e 题目大意 给定 N 和 K,要求构造有 N 个点,恰有 K 对点,它们的最短距离为 2 的 ...

  7. PAT_A1094#The Largest Generation

    Source: PAT A1094 The Largest Generation (25 分) Description: A family hierarchy is usually presented ...

  8. 解决多个window.onscroll覆盖的问题

    项目中有好几处都有用到监听页面滚动window.onscroll这个函数,结果出现了后者覆盖前者的问题. 最后是通过addEventListener解决了这种共存问题.       ⚠️该处代码thi ...

  9. HTTPS客户端的java实现

    目录 https客户端 指定ssl算法套 浏览器可以作为客户端向服务器发送Http请求,当需要访问后台或第三方Restful接口时,也可以用java实现客户端直接发get/post请求,获取数据. h ...

  10. webpack3

    6月20号webpack推出了3.0版本,官方也发布了公告.根据公告介绍,webpack团队将未来版本的改动聚焦在社区提出的功能需求,同时将保持一个快速.稳定的发布节奏.本文主要依据公告内容,简单介绍 ...