1. 程式人生 > >頁面漸進式消失【JS程式碼】

頁面漸進式消失【JS程式碼】

 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 ,無法取到圖片上的色值,使用了背景圖定位代替,所以效能方面可能有所不足。

&n