add border box 4 component
This commit is contained in:
		
							
								
								
									
										142
									
								
								src/components/borderBox4/index.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								src/components/borderBox4/index.vue
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,142 @@ | ||||
| <template> | ||||
|   <div class="border-box-4" :ref="ref"> | ||||
|     <svg :class="`border-svg-container ${reverse && 'reverse'}`"> | ||||
|       <polyline class="line-1" :points="`145, ${height - 5} 40, ${height - 5} 10, ${height - 35} | ||||
|         10, 40 40, 5 150, 5 170, 20 ${width - 15}, 20`"/> | ||||
|       <polyline class="line-2" :points="`245, ${height - 1} 36, ${height - 1} 14, ${height - 23} | ||||
|         14, ${height - 100}`" /> | ||||
|       <polyline class="line-3" :points="`7, ${height - 40} 7, ${height - 75}`" /> | ||||
|       <polyline class="line-4" :points="`28, 24 13, 41 13, 64`" /> | ||||
|       <polyline class="line-5" :points="`5, 45 5, 140`" /> | ||||
|       <polyline class="line-6" :points="`14, 75 14, 180`" /> | ||||
|       <polyline class="line-7" :points="`55, 11 147, 11 167, 26 250, 26`" /> | ||||
|       <polyline class="line-8" :points="`158, 5 173, 16`" /> | ||||
|       <polyline class="line-9" :points="`200, 17 ${width - 10}, 17`" /> | ||||
|       <polyline class="line-10" :points="`330, 17 ${width - 10}, 17`" /> | ||||
|     </svg> | ||||
|  | ||||
|     <slot></slot> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| export default { | ||||
|   name: 'BorderBox4', | ||||
|   data () { | ||||
|     return { | ||||
|       ref: `border-box-4-${(new Date()).getTime()}`, | ||||
|       width: 0, | ||||
|       height: 0 | ||||
|     } | ||||
|   }, | ||||
|   props: ['reverse'], | ||||
|   methods: { | ||||
|     init () { | ||||
|       const { $nextTick, $refs, ref } = this | ||||
|  | ||||
|       $nextTick(e => { | ||||
|         this.width = $refs[ref].clientWidth | ||||
|         this.height = $refs[ref].clientHeight | ||||
|       }) | ||||
|     } | ||||
|   }, | ||||
|   mounted () { | ||||
|     const { init } = this | ||||
|  | ||||
|     init() | ||||
|   } | ||||
| } | ||||
| </script> | ||||
|  | ||||
| <style lang="less"> | ||||
| .border-box-4 { | ||||
|   position: relative; | ||||
|   box-sizing: border-box; | ||||
|   padding: 30px; | ||||
|  | ||||
|   .reverse { | ||||
|     transform: rotate(180deg); | ||||
|   } | ||||
|  | ||||
|   .border-svg-container { | ||||
|     position: absolute; | ||||
|     width: 100%; | ||||
|     height: 100%; | ||||
|     top: 0px; | ||||
|     left: 0px; | ||||
|  | ||||
|     polyline { | ||||
|       fill: none; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   .sred { | ||||
|     stroke: red; | ||||
|   } | ||||
|  | ||||
|   .sblue { | ||||
|     stroke: fade(blue, 80); | ||||
|   } | ||||
|  | ||||
|   .sw1 { | ||||
|     stroke-width: 1; | ||||
|   } | ||||
|  | ||||
|   .sw3 { | ||||
|     stroke-width: 3px; | ||||
|     stroke-linecap: round; | ||||
|   } | ||||
|  | ||||
|   .line-1 { | ||||
|     .sred; | ||||
|     .sw1; | ||||
|   } | ||||
|  | ||||
|   .line-2 { | ||||
|     .sblue; | ||||
|     .sw1; | ||||
|   } | ||||
|  | ||||
|   .line-3 { | ||||
|     .sred; | ||||
|     .sw3; | ||||
|   } | ||||
|  | ||||
|   .line-4 { | ||||
|     .sred; | ||||
|     .sw3; | ||||
|   } | ||||
|  | ||||
|   .line-5 { | ||||
|     .sred; | ||||
|     .sw1; | ||||
|   } | ||||
|  | ||||
|   .line-6 { | ||||
|     .sblue; | ||||
|     .sw1; | ||||
|   } | ||||
|  | ||||
|   .line-7 { | ||||
|     .sblue; | ||||
|     .sw1; | ||||
|   } | ||||
|  | ||||
|   .line-8 { | ||||
|     .sblue; | ||||
|     .sw3; | ||||
|   } | ||||
|  | ||||
|   .line-9 { | ||||
|     .sred; | ||||
|     .sw3; | ||||
|     stroke-dasharray: 100 150; | ||||
|   } | ||||
|  | ||||
|   .line-10 { | ||||
|     .sblue; | ||||
|     .sw1; | ||||
|     stroke-dasharray: 80 170; | ||||
|   } | ||||
| } | ||||
| </style> | ||||
		Reference in New Issue
	
	Block a user
	 jiaming
					jiaming