关于个人网站页面优化的二三记录
最近在搞博客的优化,真的是非常折腾了,审美也在不断的变化,总体上来说还是收获很多的,在此记录一下自己的一点心得。
1. PJAX
这两天整了好久音乐播放器,审美来来回回变化,一个挺大的需求是实现在多个页面的音乐连续播放,经过一系列资料搜索后,看到github上由于一个PJAX的项目非常这个需求,即只动态加载部分页面,音乐播放器不重复加载,从而实现连续播放。
项目地址为: https://github.com/MoOx/pjax
使用也非常简单,按照官网的说明即可,引入pjax的javascript文件,并写javascript脚本指定链接和动态加载部分的内容即可,,elements指定跳转链接的样式(目前只支持a[href]
和form[action]
,如果是其它页面跳转的话需要修改跳转链接为指定样式),selectors指定动态加载的内容。
脚本如下:
|
|
另外github上还有另一个jquery实现的pjax项目,相比来说我使用的这个项目不需要设置后端,并且在持续更新维护。
2.NProgress
使用PJAX加载的时候如果网速不太好的话会显示静止一段时间,因此使用一个进度条表示显示加载进度比较有必要。
项目地址为:http://ricostacruz.com/nprogress/
使用方式和PJAX类似,引入相应的css和javascript文件,在PJAX的script之后添加
|
|
这个进度条的样式位于顶部比较低调,我更想用效果比较显眼的进度条,还在物色中。
3. 音乐播放器
音乐插件真的是花了好多时间,最开始我用的是Aplayer,后来从codepen上找好看的播放器,花了很多时间调整样式来适应博客的布局,结果效果也很一般(尤其是移动端适应)
以下为尝试过的几种播放器:
- Aplayer:样式固定,可以放歌单
- plyr:样式简洁,不可以放歌单
- codepen中自选:可定制程度高,这也是我目前使用的播放器
- 网易云外链:使用方便,不可以放歌单,不是所有歌都能生成外链
4.设置背景样式
4.1 背景图片
博客原来的背景是黑色,比较枯燥,因此使用每日更新的bing壁纸作为背景,直接使用别人做好的接口即可。
|
|
4.2 背景特效
最后还是没有找到自己喜欢的背景特效,水面特效真的很好看,我想应用到自己的博客上,但是不太适配固定背景的页面,下拉的时候背景会变模糊,只好舍弃了。一些可以参考的项目如下:
- https://github.com/sirxemic/jquery.ripples
- https://vincentgarreau.com/particles.js
- https://github.com/tengbao/vanta
- https://github.com/hustcc/canvas-nest.js
5.动态变化窗口标题
根据正在浏览的窗口动态变化窗口的名称,参考atlinker的网站源码
|
|
6.鼠标特效
6.1 鼠标显示特效
鼠标在元素上显示的样式可以用css中的cursor属性指定,本博客作用在body元素上,制定了鼠标样式的图片
|
|
6.2 鼠标点击特效
使用别人写好的javascript文件
|
|
值得注意的时,下面的script代码最好写在onload()函数内部,以确保需要的依赖已经被加载,或者:
引入require.js
, 再使用require()函数进行加载。
7. 返回顶部
参考了yearito博客和diygod博客的样式。
首先获得猫的图片,然后在html中写一个空元素
|
|
css样式为
|
|
javascript代码为:
|
|
8. 固定的navbar
使用css样式中position:sticky
属性,具体参考MDN,使用的css样式如下:
|
|
sticky定位综合了relative定位和fixed定位,具体来说就是当元素顶部距离大于0px时,元素为relative 定位,当向下滚动,元素距离小于0px时,即原本的元素即将离开视野时,元素表现为fixed 定位,也就会固定在顶部。
sticky元素会固定在离它最近的一个拥有“滚动机制”的祖先上,因此需要注意父元素的高度应为实际高度。
感想
虽然说折腾这些东西花费了很多时间和经历,但是也收获了很多新的知识,所谓不折腾就很难有收获。另外,这些瞎忙活也算是简单的入门级操作,接触了node.js和scss等概念,自己写的javascript代码还很不成熟,之后希望能做一个node.js项目,系统学习一下相关知识。
可能下一次折腾博客的美化又要过好久啦,接下来应该更专注充实博客的内容。感觉自己写技术类的文章还是比较不成熟,还有很多进步空间,一是要多写多练,二是准备看一下技术写作的文档教程来学习。
最后,一定一定要好好利用这个假期的时间,不断进步学习!!!
参考
- pjax项目地址 https://github.com/MoOx/pjax
- Aplayer项目地址 https://github.com/MoePlayer/APlayer
- plyr项目地址 https://github.com/sampotts/plyr
- 巨硬(必应)每日壁纸接口 https://atlinker.cn/2019/07/28/bing.html
- NProgress项目地址 https://github.com/rstacruz/nprogress
- Hexo 搭建个人博客系列:主题美化篇 http://yearito.cn/posts/hexo-theme-beautify.html
- 深入理解position sticky粘性定位的计算规则 https://www.zhangxinxu.com/wordpress/2020/03/position-sticky-rules/