61 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
| <template>
 | |
|   <div>
 | |
|     <svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" @click="click" />
 | |
|   </div>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| import screenfull from 'screenfull'
 | |
| 
 | |
| export default {
 | |
|   name: 'Screenfull',
 | |
|   data() {
 | |
|     return {
 | |
|       isFullscreen: false
 | |
|     }
 | |
|   },
 | |
|   mounted() {
 | |
|     this.init()
 | |
|   },
 | |
|   beforeDestroy() {
 | |
|     this.destroy()
 | |
|   },
 | |
|   methods: {
 | |
|     click() {
 | |
|       if (!screenfull.enabled) {
 | |
|         this.$message({
 | |
|           message: 'you browser can not work',
 | |
|           type: 'warning'
 | |
|         })
 | |
|         return false
 | |
|       }
 | |
|       screenfull.toggle()
 | |
|     },
 | |
|     change() {
 | |
|       this.isFullscreen = screenfull.isFullscreen
 | |
|     },
 | |
|     init() {
 | |
|       if (screenfull.enabled) {
 | |
|         screenfull.on('change', this.change)
 | |
|       }
 | |
|     },
 | |
|     destroy() {
 | |
|       if (screenfull.enabled) {
 | |
|         screenfull.off('change', this.change)
 | |
|       }
 | |
|     }
 | |
|   }
 | |
| }
 | |
| </script>
 | |
| 
 | |
| <style scoped>
 | |
| .screenfull-svg {
 | |
|   display: inline-block;
 | |
|   cursor: pointer;
 | |
|   fill: #5a5e66;;
 | |
|   width: 20px;
 | |
|   height: 20px;
 | |
|   vertical-align: 10px;
 | |
| }
 | |
| </style>
 |