七夕情人节表白-纯JS实现3D心形+图片旋转
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                七夕情人节表白-纯JS实现3D心形+图片旋转
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                七夕情人節就快到了,這里獻上純js表白神器-心里都是你,預覽:
技術點:css-3d、js-隨機色、js-transform
1.html:
1 <div class="heart"> 2 <div class="cube"> 3 <div> 4 <img src="images/1.jpg" width="100" height="100" alt=""> 5 </div> 6 <div> 7 <img src="images/2.jpg" width="100" height="100" alt=""> 8 </div> 9 <div> 10 <img src="images/3.jpg" width="100" height="100" alt=""> 11 </div> 12 <div> 13 <img src="images/4.jpg" width="100" height="100" alt=""> 14 </div> 15 <div> 16 <img src="images/5.jpg" width="100" height="100" alt=""> 17 </div> 18 <div> 19 <img src="images/6.jpg" width="100" height="100" alt=""> 20 </div> 21 </div> 22 </div>
2.css:
 1 *{
 2     margin:0;
 3     padding:0;
 4 }
 5 body{
 6     background:#000;
 7     overflow:hidden;
 8 }
 9 .heart{
10     position:absolute;
11     left:0;
12     right:0;
13     top:0;
14     bottom:0;
15     width:200px;
16     height:260px;
17     margin: auto;
18     transform-style:preserve-3d;
19     perspective:800px;
20     animation:rot 15s linear infinite;
21 }
22 @keyframes rot{
23     from{transform:rotateY(0deg) rotateX(0deg)}
24     to{transform:rotateY(360deg) rotateX(360deg)}
25 }
26 .rib{
27     position:absolute;
28     width:200px;
29     height:260px;
30     border:solid red;
31     border-width:1px 1px 0 0;
32     border-radius:100% 100% 0/40% 100% 0;
33     transition: all 1s;
34 }
35 .cube{
36     position:absolute;
37     left:0;
38     right:0;
39     top:0;
40     bottom:0;
41     margin:auto;
42     width:100px;
43     height:100px;
44     color:red;
45     transform-style:preserve-3d;
46     transform:translateZ(50px);
47 }
48 .cube div{
49     position:absolute;
50     width:100px;
51     height:100px;
52 }
53 .cube div:nth-child(1){
54     left:0;
55     top:-100px;
56     transform-origin:bottom;
57     transform:rotateX(90deg);
58 }
59 .cube div:nth-child(2){
60     left:0;
61     top:100px;
62     transform-origin:top;
63     transform:rotateX(-90deg);
64 }
65 .cube div:nth-child(3){
66     left:-100px;
67     top:0px;
68     transform-origin:right;
69     transform:rotateY(-90deg);
70 }
71 .cube div:nth-child(4){
72     left:100px;
73     top:0px;
74     transform-origin:left;
75     transform:rotateY(90deg);
76 }
77 .cube div:nth-child(5){
78     left:0;
79     top:0px;
80 }
81 .cube div:nth-child(6){
82     left:0;
83     top:0px;
84     transform:translateZ(-100px);
85 }
View Code
3.js:
 1 var heart = document.getElementsByClassName("heart")[0];
 2 for (var i = 0; i < 36; i++) {
 3     var oDiv = document.createElement("div");
 4     oDiv.className = "rib";
 5     // 畫36條心形曲線
 6     oDiv.style.transform = "rotateY(" + 10 * i + "deg) rotateZ(45deg) translateX(30px)";
 7     var n = 0;
 8     setInterval(function() {
 9         if (n < 36) {
10             document.getElementsByClassName('rib')[n].style.borderColor = getRandomColor();
11             n = n + 1;
12         } else {
13             n = 0;
14         }
15     },1000)
16     console.log(n)
17     heart.appendChild(oDiv);
18 }
19 
20 // 隨機色
21 var getRandomColor = function(){    
22   return  '#' +    
23     (function(color){    
24     return (color +=  '0123456789abcdef'[Math.floor(Math.random()*16)])    
25       && (color.length == 6) ?  color : arguments.callee(color);    
26   })('');    
27 } 
圖片資源自行填充。
下圖效果只是添加了一個hover改變div的transform屬性,大家可以擴展制作。
總結
以上是生活随笔為你收集整理的七夕情人节表白-纯JS实现3D心形+图片旋转的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 招行信用卡金卡有什么用 这些好处你可受用
- 下一篇: 分数化小数
