js修改地址栏url_使用JS和Emojis让你的地址栏动起来

我们知道实际上现代的URL是可以使用emoj符号(以及其他unicode字符)。但是这样做的可能先得有点非主流而且会严重影响网站的SEO,所以很少有人这样用过。但是作为一种技术尝试这是一个很有意义的事情,那么今天虫虫就带领大家一起来做这件有意义的技术尝试。具体来说就是通过JS让这些字符动起来。

Loop循环

在JS代码中要支持emoj符号,首先要确保页面的JS代码标记为UTF-8。我们可以通过通过HTTP标头或META标签来完成设置:

为了实现我们在地址栏中的URL可以动起来,实际上只需要一个循环。实例代码如下:

e4e60b89ae5dcf3468c4b4fadff7f169.png

这是我们的第一个循环,一个旋转的表情符号的月亮。运行效果如下:

94af427e2d5274b4adb3264ccc1a7beb.gif

时钟

当然这个旋转的月亮可以换成任何表情符号,只需对f数组赋值不同的表情即可。比如一个时钟:

var f = ['', '', '', '', '', '', '', ''];

效果如下:

cb2db373132d12fd2d5e7f901d6679fe.gif

变脸娃娃

上面的例子太简单,让我们增加点难度。这我们给loop函数做些修改,让它生成的是一个包含多个表情符号的字符串。这次我们使用emoji 的换肤器做修饰,最后结果是一个变脸娃娃:

7d16b1a80eb661334a701237a022774e.png

执行效果如下:

fc0a8f45bc02d6d624ebb95feb232f2a.gif

代码解释:

在loop函数中,我们使用了一个我们使用的正弦函数Math.sin()来生成颜色参数,有有系统时间和循环变量控制的位置来作为正弦函数的参数。

月相动态

回到我们第一个月亮的例子,我是使用一个加载器来实现夺个月亮加载,并呈现不同月亮状态的情形。代码如下:

de0000bcd96d4eac816bba0db96656a4.png

运行效果

39a116071cb4dfd8badbbc73dda7ec03.gif

其他Unicode字符

波浪图

开始时候说了,我们不光可以使用emoji,也能使用任何的Unicode字符,比如下面这些用来组合形状的Unicode字符

0348c0ec51a2fd81816c5df7a59cf392.png

我们可以让他们组合成很多二维的形状,下面的例子我们创建了有多个高度变化的字符块生成的波浪图:

02142b8ae64f1977339eeb3bbd33afca.png

运行效果如下:

bb4d06d17c6f0a1a4b4c7d5e4573e302.gif

进度条

我们把上面例子中的高度变化换成高度的变化,让其水平摆动,就是一个进度条:

1220873d095556345bafabfd50af68c7.png

运行效果如下:

00babc85e436e332f10a9fe700e4ed51.gif

视频进度条

上面这些小玩意基本上都是好玩,中看不中用。那我们再来做一个实用的东西,显示在线视频播放的进度,这个也不难,我们只需躲附加一个函数,将进度条中用的字符串替换为视频的"timeupdate"即可,就可以在URL显示的视频进度,包括时常,当前播放时间:

3cbc39d16d3d777a6fc4148c7a560768.png

运行效果如下:

c4ced86bef64fb9fb367f9d6dbee1210.gif

怎么样?很有型吧,当然这个虚实线有圆构成进度条也可以换成其他的,比如前面我生成的月相图可以挪过来用:

1020aff83f0885bfce3a3af0b3195825.png

运行效果如下:

c97a50b23724a1577286c2b80b0fd20c.gif

总结

本文我们一起探索了使用JS和Emojis实现Url动态效果的技术实现。最后贴一下具体实现时候的html页面的框架代码:

238eefc812ac57ff93e11ba51a0381aa.png

只需把我们各种动画JS代码贴到上面框架中的script部分,然后通过url(必须虚拟站点形式)打开,就可以在地址栏看到效果了。如果感兴趣请关注虫虫,可以和虫虫一起讨论,并索取全部的源码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值