mirror of https://github.com/ElemeFE/element
				
				
				
			
		
			
				
	
	
		
			291 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Smarty
		
	
	
			
		
		
	
	
			291 lines
		
	
	
		
			5.8 KiB
		
	
	
	
		
			Smarty
		
	
	
| <style scoped>
 | |
|   .actor {
 | |
|     min-height: 65px;
 | |
| 
 | |
|     &:after {
 | |
|       content: '';
 | |
|       width: 6px;
 | |
|       height: 50px;
 | |
|       vertical-align: -8px;
 | |
|       margin-left: 5px;
 | |
|       background-color: #fff;
 | |
|       display: inline-block;
 | |
|       animation: blink 400ms infinite alternate;
 | |
|     }
 | |
|   }
 | |
|   .banner {
 | |
|     position: relative;
 | |
|     height: 420px;
 | |
|     color: #fff;
 | |
|     margin-bottom: 130px;
 | |
| 
 | |
|     .container {
 | |
|       position: relative;
 | |
|     }
 | |
| 
 | |
|     img {
 | |
|       position: absolute;
 | |
|       top: 15px;
 | |
|       right: -10px;
 | |
|     }
 | |
|   }
 | |
|   .banner-sky {
 | |
|     position: absolute;
 | |
|     top: -150px;
 | |
|     bottom: -15px;
 | |
|     width: 100%;
 | |
|     margin-top: -140px;
 | |
|     transform: skewY(-5deg);
 | |
|     transform-origin: center;
 | |
|     background-image: linear-gradient(180deg, #0d1a44 13%, #3c4f91 56%, #5fc1e4 100%);
 | |
|   }
 | |
|   img.banner-stars {
 | |
|     top: -10px;
 | |
|     left: 50%;
 | |
|     transform: translateX(-50%);
 | |
|   }
 | |
|   .banner-desc {
 | |
|     padding-top: 110px;
 | |
|     padding-left: 30px;
 | |
|     font-size: <%= theatreSize >px;
 | |
|     position: relative;
 | |
|     z-index: 10;
 | |
| 
 | |
|     h2 {
 | |
|       font-size: <%= titleSize >px;
 | |
|       margin: 0;
 | |
|       color: #fff;
 | |
|     }
 | |
| 
 | |
|     p {
 | |
|       font-size: 14px;
 | |
|       opacity: .8;
 | |
|       width: 420px;
 | |
|       line-height: <%= paraHeight >;
 | |
|       padding-left: 3px;
 | |
|     }
 | |
|   }
 | |
|   .cards {
 | |
|     margin: 0 auto 110px;
 | |
|     width: 1140px;
 | |
| 
 | |
|     .container {
 | |
|       @utils-clearfix;
 | |
|       padding: 0;
 | |
|       margin: 0 -11px;
 | |
|       width: auto;
 | |
|     }
 | |
| 
 | |
|     li {
 | |
|       width: 33.33333%;
 | |
|       padding: 0 19px;
 | |
|       box-sizing: border-box;
 | |
|       float: left;
 | |
|       list-style: none;
 | |
|     }
 | |
| 
 | |
|     img {
 | |
|       width: 160px;
 | |
|       height: 120px;
 | |
|     }
 | |
|   }
 | |
|   .card {
 | |
|     height: 430px;
 | |
|     width: 100%;
 | |
|     background:#ffffff;
 | |
|     border:1px solid #eaeefb;
 | |
|     border-radius:5px;
 | |
|     box-sizing: border-box;
 | |
|     text-align: center;
 | |
|     position: relative;
 | |
|     transition: all .3s ease-in-out;
 | |
|     bottom: 0;
 | |
| 
 | |
|     img {
 | |
|       margin: 66px auto 60px;
 | |
|     }
 | |
|     h3 {
 | |
|       margin: 0;
 | |
|       font-size: 18px;
 | |
|       color: #1f2f3d;
 | |
|       font-weight: normal;
 | |
|     }
 | |
|     p {
 | |
|       font-size: 14px;
 | |
|       color: #99a9bf;
 | |
|       padding: 0 25px;
 | |
|       line-height: <%= paraHeight >;
 | |
|     }
 | |
|     a {
 | |
|       height: 53px;
 | |
|       line-height: 52px;
 | |
|       font-size: 14px;
 | |
|       color: #20a0ff;
 | |
|       text-align: center;
 | |
|       border: 0;
 | |
|       border-top: 1px solid #eaeefb;
 | |
|       padding: 0;
 | |
|       cursor: pointer;
 | |
|       width: 100%;
 | |
|       position: absolute;
 | |
|       bottom: 0;
 | |
|       left: 0;
 | |
|       background-color: #fff;
 | |
|       border-radius: 0 0 5px 5px;
 | |
|       transition: all .3s;
 | |
|       text-decoration: none;
 | |
|       display: block;
 | |
| 
 | |
|       &:hover {
 | |
|         color: #fff;
 | |
|         background: #20a0ff;
 | |
|       }
 | |
|     }
 | |
|     &:hover {
 | |
|       bottom: 6px;
 | |
|       box-shadow: 0px 6px 18px 0px rgba(232,237,250,0.50);
 | |
|     }
 | |
|   }
 | |
|   @keyframes blink {
 | |
|     from { opacity: 0; }
 | |
|     to { opacity: 1; }
 | |
|   }
 | |
|   @media (max-width: 1140px) {
 | |
|     .cards {
 | |
|       width: 100%;
 | |
|       .container {
 | |
|         width: 100%;
 | |
|       }
 | |
|     }
 | |
|     .banner .container {
 | |
|       width: 100%;
 | |
|       box-sizing: border-box;
 | |
|     }
 | |
|     .banner img {
 | |
|       right: 0;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   @media (max-width: 1000px) {
 | |
|     .banner .container {
 | |
|       img {
 | |
|         display: none;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   @media (max-width: 768px) {
 | |
|     .cards {
 | |
|       li {
 | |
|         width: 80%;
 | |
|         margin: 0 auto 20px;
 | |
|         float: none;
 | |
|       }
 | |
|       .card {
 | |
|         height: auto;
 | |
|         padding-bottom: 54px;
 | |
|       }
 | |
|     }
 | |
|     .banner-stars {
 | |
|       display: none;
 | |
|     }
 | |
|     .banner-desc {
 | |
|       #line2 {
 | |
|         display: none;
 | |
|       }
 | |
|       h2 {
 | |
|         font-size: 32px;
 | |
|       }
 | |
|       p {
 | |
|         width: auto;
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| </style>
 | |
| <template>
 | |
|   <div>
 | |
|     <div class="banner">
 | |
|       <div class="banner-sky"></div>
 | |
|       <img class="banner-stars" src="~examples/assets/images/stars.png" alt="Element">
 | |
|       <div class="container">
 | |
|         <div class="banner-desc">
 | |
|           <h2><%= 1 ></h2>
 | |
|           <div id="line2" class="actor"></div>
 | |
|           <p><%= 2 ></p>
 | |
|         </div>
 | |
|         <img src="~examples/assets/images/banner-bg.svg" alt="Element">
 | |
|       </div>
 | |
|     </div>
 | |
|     <div class="cards">
 | |
|       <ul class="container">
 | |
|         <li>
 | |
|           <div class="card">
 | |
|             <img src="~examples/assets/images/guide.png" alt="">
 | |
|             <h3><%= 3 ></h3>
 | |
|             <p><%= 4 ></p>
 | |
|             <router-link
 | |
|               active-class="active"
 | |
|               to="/<%= lang >/guide/design"
 | |
|               exact><%= 5 >
 | |
|             </router-link>
 | |
|           </div>
 | |
|         </li>
 | |
|         <li>
 | |
|           <div class="card">
 | |
|             <img src="~examples/assets/images/component.png" alt="">
 | |
|             <h3><%= 6 ></h3>
 | |
|             <p><%= 7 ></p>
 | |
|             <router-link
 | |
|               active-class="active"
 | |
|               to="/<%= lang >/component/layout"
 | |
|               exact><%= 5 >
 | |
|             </router-link>
 | |
|           </div>
 | |
|         </li>
 | |
|         <li>
 | |
|           <div class="card">
 | |
|             <img src="~examples/assets/images/resource.png" alt="">
 | |
|             <h3><%= 8 ></h3>
 | |
|             <p><%= 9 ></p>
 | |
|             <router-link
 | |
|               active-class="active"
 | |
|               to="/<%= lang >/resource"
 | |
|               exact><%= 5 >
 | |
|             </router-link>
 | |
|           </div>
 | |
|         </li>
 | |
|       </ul>
 | |
|     </div>
 | |
|   </div>
 | |
| </template>
 | |
| <script>
 | |
|   import theaterJS from 'theaterjs';
 | |
| 
 | |
|   export default {
 | |
|     mounted() {
 | |
|       function typing(theater) {
 | |
|         theater
 | |
|           <%= typingFunc >
 | |
|           .addScene((done) => {
 | |
|             typing(theater);
 | |
|             done();
 | |
|           });
 | |
|       }
 | |
|       var theater = theaterJS(<%= theatreParam >);
 | |
|       theater
 | |
|         .on('type:start, erase:start', function() {
 | |
|           theater.getCurrentActor().$element.classList.add('typing');
 | |
|         })
 | |
|         .on('type:end, erase:end', function() {
 | |
|           theater.getCurrentActor().$element.classList.remove('typing');
 | |
|         });
 | |
|       theater
 | |
|         <%= typingInvoke >
 | |
|         .addScene((done) => {
 | |
|           typing(theater);
 | |
|           done();
 | |
|         });
 | |
|     }
 | |
|   };
 | |
| </script>
 |