1   // 设定时间,页面慢慢变透明,直到消失
 2     var opacityInterval = setInterval(function () {
 3         // 普通时间转为格林威治时间
 4         var targetDate = new Date('2019-05-23 17:20:00')
 5         var currentDate = new Date()
 6         // 目标时间距1970年毫秒数
 7         var time1 = targetDate.getTime()
 8         // 当前时间距1970年毫秒数
 9         var time2 = currentDate.getTime()
10         // 剩余时间毫秒数
11         var times = time1 - time2
12         // 设定timeMsec值, 让 times/timeMsec 的比值小于等于1, 也就是opacity的取值范围
13         var timeMsec = ''
14         // 剩余时间少于1小时, 就以一小时为单位, 当然你也可以设置单位为一天、一周、半个月、或半年, 相应改下 targetDate值
15         if (times < 1000 * 60 * 60) {
16             timeMsec = 1000 * 60 * 60
17         }
18         // 计算出均匀透明度
19         var opacityRate = (times / timeMsec).toFixed(2)
20         if (times > 0) {
21             document.getElementsByTagName("body")[0].style.opacity = opacityRate
22         } else {
23             // 剩余时间为0, 设置opacityRate为0, 并清除定时器
24             opacityRate = 0
25             clearInterval(opacityInterval)
26         }
27     }, 3000)

    在github上面看到的 ,代码挺简单的,但是效果还可以,大家可以试试,挺有意思的。

 

 

 

 

 

 

顺便分享一个JS+CSS3 让图片爆炸的效果   源地址  :https://github.com/chokcoco/boomJS

Usage

 1 <!-- style -->
 2 <link rel="stylesheet" type="text/css" href="Boom.css" />
 3 <!-- scripts -->
 4 <script src="jquery.js"></script>
 5 <!-- scripts -->
 6 <script src="boom.js"></script>
 7 
 8 <script>
 9 // 调用方法:
10 //法一:传入图片的 jQuery 对象
11 boom($('img')) 
12 
13 // 法二:构建 boom 实例,传入图片的 jQuery 对象
14 var bom = boom();
15 bom.boom($('img'));
16 </script>

 

 

API

 1 boom($('img'),{
 2   // 缩放值
 3  'scaleLevel' : 3,
 4   // 模糊值
 5  'blurLevel': 9,
 6   // 弹射距离 
 7  'boomLevel': 4,
 8   // 爆炸时长
 9  'boomTime':800,
10   // 是否打开日志
11  'isOpenLog':true
12 });

温馨提示,不建议将 scaleLevel 的值设太高 🙂 。

IOS 下的效果

UIViewXXYBoom

之前在 IOS 上面看到了一个这样的效果,寻思着能否用 Javascript 实现一遍,捣鼓了一番做出了如上图所示效果,因为是非 canvas ,无法取到图片上的色值,使用了背景图定位代替,所以性能方面可能有所不足。

 

版权声明:本文为it-Ren原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/it-Ren/p/10955600.html