博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
用JS制作博客页面背景随滚动渐变的效果
阅读量:5068 次
发布时间:2019-06-12

本文共 1418 字,大约阅读时间需要 4 分钟。

今天颓了一会,用JavaScript给我的博客园博客写了一个页面背景随滚动而渐变的效果,做完之后自我感觉良好……

下面就以我的博客园博客为例,介绍一下如何制作这个效果!


准备

  • [x] 申请博客园的JS权限(如果你也想把它用在自己的博客园上)
  • [x] 可能需要一些JS的基础知识(你可以打开w3school,然后就当自己准备好了)
  • [x] 可能需要一些CSS基础知识(你需要知道颜色是怎样用16进制表示的)

——当然,你也可以复制下面的代码然后走人……

注意:如果你想要用在自己的博客园上,请注意博客园的不同模板对应的元素class也可能是不同的。

代码

首先,在“页首HTML代码”中新建一个div,放在最下面一层。这个div用来放渐变的背景颜色。

然后用js监听window.onscroll事件,记录一个cnt变量,每监听到一次,就给cnt加上1,然后用cnt生成当前颜色。

至于颜色的生成方式你可以自己发明一个。我用了三个相位不同的sin函数生成R、G、B三个颜色的值。

function getTitleValue(start, x){        var ret = titleMax - 1 - rangeValue + Math.floor(rangeValue * Math.sin(start + x));        return ret;    }function getBackgroundColor(){    var red = getBackgroundValue(0, cnt * 2 * PI / 256).toString(16);    var green = getBackgroundValue(2 * PI / 3, cnt * 2 * PI / 256).toString(16);    var blue = getBackgroundValue(4 * PI / 3, cnt * 2 * PI / 256).toString(16);    return "#" + red + green + blue;}

这里讲一下如何用js修改某个元素的颜色:

function changeColor(){    var backGround = document.getElementById("backGround");    var titles = document.getElementsByClassName("postTitle2");    var newTitleColor = getTilteColor();    backGround.style.backgroundColor = getBackgroundColor();    for(var i = 0; i < titles.length; i++)        titles[i].style.color = newTitleColor;    cnt = (cnt + 1) % 256;}

getElementById,然后调用生成颜色的函数,生成了一个字符串,形如#aabbcc,代表颜色。然后用JS修改CSS。

完整代码:

转载于:https://www.cnblogs.com/RabbitHu/p/change_background_color.html

你可能感兴趣的文章
vertical-align 和line-height 以及baseline的解析
查看>>
Android学习第十四天----SAX解析xml
查看>>
app与后台的token、sessionId、RSA加密登录认证与安全解决方案
查看>>
Java 基础
查看>>
Nancy总结(一)Nancy一个轻量的MVC框架
查看>>
关于软件工程的理解
查看>>
Git学习笔记(1)——安装,配置,创建库,文件添加到库
查看>>
mysql 用户管理和权限设置
查看>>
软件安全2.找到文件所占簇号(windows)
查看>>
解决文件夹无限嵌套无法删除的问题---最新办法
查看>>
线程的两种睡眠方法&ANR(进程/服务无响应)
查看>>
自然语言处理
查看>>
三元表达式/列表推导/生成器表达式
查看>>
Groovy基本语法
查看>>
关于selenium IDE找不到元素
查看>>
adb(12)-查看连接过的 WiFi 密码
查看>>
Mysql临时表
查看>>
Ext.Ajax.request 使用示例
查看>>
Java GC机制简要总结(Java垃圾回收的基本工作原理)
查看>>
以Self Host的方式来寄宿Web API
查看>>