CSS3 阴影模拟灯照效果

2021-07-09 09:06

阅读:677

标签:随机   透明   ini   UI   append   偏移量   type   ++   float   

效果如下:

技术分享

代码如下:

 1 DOCTYPE html>
 2 html lang="zh-CN">
 3 head>
 4 meta charset="utf-8">
 5 meta http-equiv="X-UA-Compatible" content="IE=edge">
 6 meta name="renderer" content="webkit">
 7 meta name="viewport" content="width=device-width, initial-scale=1">
 8 title>CSS3 文字光照效果title>
 9 script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js">script>
10 style>
11 .txt-shadow
12 {
13 text-align:center; font-size:80px; font-weight:bold; margin:10px; float:left; color:#fff;
14 color:#fff;
15 }
16 style>
17 head>
18 body>
19 div id="divMain">
20 div class="txt-shadow">
21 22 div>
23 div>
24 
25 script>
26 var o = $(.txt-shadow).eq(0);
27 for (var i=0; i100; i++)
28 {
29     $(#divMain).append(o.clone());
30 }
31 
32 // 随机颜色
33 $(.txt-shadow).each(function(){
34     var color = #+(00000+(Math.random()*0x10000000).toString(16)).slice(-6);
35     $(this).css(color, color);
36 });
37 
38 // 监控鼠标移动
39 $(document).mousemove(function(e) { 
40     var mx = e.originalEvent.x || e.originalEvent.layerX || 0;
41     var my = e.originalEvent.y || e.originalEvent.layerY || 0;
42     mx += $(document).scrollLeft();
43     my += $(document).scrollTop();
44     
45     $(.txt-shadow).each(function(){
46         // 根据鼠标位置偏移量,计算阴影大小
47         var pos = $(this).offset();
48         var x = pos.left + ($(this).width()/2) - mx;
49         var y = pos.top + ($(this).height()/2) - my;
50         var l = Math.sqrt(x*x + y*y);
51         var css = ‘‘ + x / 50 + px  + y / 50 + px  + l / 50 + px #666;
52         $(this).css(text-shadow, css);
53 
54         // 距离越远越透明
55         l = Math.max((500 - l) / 500, 0.3);
56         $(this).css(opacity, l);
57 
58         // 距离越远越模糊
59         $(this).css(-webkit-filter, blur( + (1 - l) * 2 + px));
60     });
61 }); 
62 script>
63 
64 body>
65 html>

 

CSS3 阴影模拟灯照效果

标签:随机   透明   ini   UI   append   偏移量   type   ++   float   

原文地址:http://www.cnblogs.com/zjfree/p/7093146.html


评论


亲,登录后才可以留言!