520情侣浪漫表白JS特效分享(附源码)
520马上就要到,作为程序员的你是不是也想送个特别的礼物。今天给大家分享一个HTML5+CSS3+jQuery实现的情侣浪漫表白JS特效,视觉效果还是相当不错!得此表白神器,程序猿也可以很浪漫!快去追你的女神吧,把这个告白爱心动画发给你心爱的她!
这个特效主要实现了这几个功能,功能一基于jQuery实现的文字打印动态效果,文字的颜色个样式通过定义不同的CSS样式来控制的。功能二动态生成随机的花瓣并拼成一个爱心图案,通过prototype属性向对象添加属性和方法。功能三爱心中的文字淡入显示,这个主要是利用了fadeIn方法来实现。最后一个功能就是当点击接受时开始计时功能,通过new Date()获取当前时间再把时间差转换为天数、小时数、分钟数和秒数显示即可。
这里的d.html(c.substring(0,b)+(b&1?\”_\”:\”\”))是为了实现打印的动态效果了,当下标index为奇数的时候最后一个字符显示为\”_\”,当为偶数的时候显示\” \”,这样就能形成打印文字的那种动态效果。
这里主要的功能就是创建矢量线,告诉我们花瓣的走向。接着再绘制随机生成的花瓣图案,最后再加上开花的效果。这里的Vector方法绘制了爱心的大致形状,Petal方法则负责绘制随机生成的花瓣,Bloom方法则定义了花瓣的绽放效果。Garden方法为花园入口,负责参数选项配置选项及方法调用以实现爱心图案的生成。
在爱心中间的字体采用了淡入的效果,这里我们可以通过jQuery封装的fadeIn()方法实现淡入效果来显示一个隐藏的元素。文字默认样式通过CSS定义为隐藏状态,fadeIn()由两个参数分别是speed(速度)和callback(回调函数)。当花瓣爱心绘制完成之后我们调用fadeIn方法显示爱心中的内容,回调中继续显示loveu中的内容。
当链接被点击的时候触发timeElapse方法开始计时,这里获取了当前的时间并对时间进行了换算为天数、小时数、分钟数和秒数显示。parse()方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数。floor()方法则是对一个数进行向下取整计算,返回的是小于或等于且最接近计算值的整数。
源码说明:本例中的源码非本人创作,本文仅作简单的解析和分享。需要源码的朋友可以在评论区留言,本源码仅限学习参考请勿它用。以上内容是小编给大家分享的【520情侣浪漫表白JS特效分享(附源码)】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。更多Vue实战技巧可以参考专栏:Vue实战系列,在此也非常感谢大家对小编的支持!
55个JS代码让你轻松当大神
本文从简单到复杂列出了前端常用的一些代码段。善用这些代码可以让你的代码更高雅,别人更难懂。你就是公司的护城河,你就是前端的顶梁柱。
- 数组平铺。这是一个很实用的让复杂的数组快速变成一个常用数组的技巧。arr参数不管是一维数组还是多维数组,经过转变之后最终都会变成一维数组。
- 手动延时xx毫秒。在异步请求编程中,有时候要用到让进程等待的情况,用这个函数可以设定等待多少毫秒。
- 把数组内容随便换个位置。可以用来生成随机位置的内容,比如洗牌这种场景。
- 数组去重。原理就是先转成Set对象,自动去掉重复的部分,再转回数组。
- 一键给网页上边框。常用于调试的时候,看一下DOM的框是不是自己要的,其中颜色是随机生成的。也可以自己改一下变成固定颜色的边框。
效果如下:
6. 一键查看密码。同理也可以自己修改,这里用代码的方式来查看。原理是input框虽然是type=password的,但是内容并没有加密,只要换成text就会正常显示。
- 一键去掉鼠标的图标,让人摸不着头脑的操作。一般用于防止别人调试自己的网页。
- 检查一个日期是否是在周末。常用于判断当前日期是否是周末,一般场景下还会叠加一个判断是否节假日。
- 检查一个日期是否在某个年份内。通过获取参数日期的年和需要比较的日期的年来进行比较。如果年的参数比较规范,可以不转一次Date对象,直接比较即可。
- 检查日期是否是一个有效日期。原理是用参数来创建日期,看日期是否有效。
- 计算两个日期之间的时间间隔。这里计算的是天,也可以自己改成其他的。
- 获取日期从年初到现在入参有多少天。入参是Date对象,通过比较获得时间差,默认是毫秒。这里除以一天的毫秒数获得了天数。
- 返回日期的时间部分,并设置格式为hh:mm:ss的形式。
- 把字符串的首字母大写。有时候网页展示的时候会用得到。
- 字符串反转。一般没啥用,看看就行。以前面试的时候会用的到。
- 生成随机字符串,各种随机基本都是这个原理。
- 按照参数阶段字符串的长度,如果长度不够就不截取。一般代码中自己写也行,但是要多写一个逻辑判断。
- 删除字符串中的HTML内容。一般情况下用来防止富文本内容中注入了js代码、去掉不需要的内容等。
- 判断一个数组是否为空。这里一方面是判断是否为数组,另一方面是判断数组内容。
- 数组合并,两个数组合并成一个数组。下面是两种方法,都有用,只是用到的语法不同。
- 判断数字是奇数还是偶数,同理还可以判断是否可以被3整除之类的。
- 计算一组数字的平均值。具体就是所有数字相加再被数量除一次。
- 获得一个随机数。第一个是从0开始到数字之间,第二个是两个数字之间。注意最后的加法是独立算数,修改的时候别改错地方了。
- 按照指定位数四舍五入。如果没有要求,第二种也是很好用的。
- 获取一个随机颜色。
- 使用浏览器的原生API复制内容到剪贴板。有的浏览器可能有兼容问题。
- 清除Cookie。老方法了,可以挨个清除cookie的内容。
- 使用浏览器原生的API获得用户框选的文本内容。
- 检查当前环境是否黑暗模式。CSS的检查也是这个原理。
30.让页面返回浏览器顶部。
- 检测当前标签页是否处于激活模式。
- 检测当前设备是否苹果设备。同理还有微信浏览器、支付宝浏览器等。
- 判断当前页面是否在底部了。
- 打开浏览器的打印模式。
- 检测一个对象是否为空。
- 前端自己生成18位的UUID。用到的时候就用到了,一般情况下用不到,哈哈。
- RGB形式的颜色转成16进制的颜色。
- HEX形式的颜色转RGB形式的颜色。
- 网易音乐的web端启用下载功能(标准音质)。
- 前端自己计算内容的SHA256值。
- 浅拷贝。简单使用场景下的方式。
- 深拷贝。多层级下的内容都可以处理到。function不行,那个要单独处理。
- 自己实现一个单向链表。面试的时候会用到,一般情况下有这个思维就可以了。
- 自定义方式的数组排序。
- useMap。实现一个自动处理Map对象的hook。
- useSet。实现一个自动处理内部数据的Set对象。
- useDefault。有内容使用设置的内容,没有内容使用默认的内容。
- useMergeState。实现一个合并内容的对象,常见对象的自动更新。
- useDebounce。实现一个React的防抖。
- useForm。实现一个React的Form对象,自动管理Form内容。
- useEventListener。实现一个自动监听函数,可以监听鼠标移动。
- useKeyPress。实现一个键盘对应的键的事件监听函数。
- useHover。实现一个鼠标悬停事件的监听函数。
- useRequestAnimationFrame。实现一个RequestAnimationFrame函数在React中使用的方法。
- useBodyScrollLock。实现一个自动锁定滚动条的函数。一般弹窗会用的上。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。