对比新文件 |
| | |
| | | import type { Directive } from "vue"; |
| | | interface ElType extends HTMLElement { |
| | | $oldStyle: CSSStyleDeclaration; |
| | | $fullStyle: CSSStyleDeclaration; |
| | | } |
| | | const vFull: Directive = { |
| | | mounted: (el: ElType, binding) => { |
| | | el.$oldStyle = { ...el.style } |
| | | if (binding.arg === 'screen') { |
| | | el.$fullStyle = { |
| | | ...el.style, |
| | | left: '0', |
| | | top: '0', |
| | | zIndex: '8', |
| | | position: 'fixed', |
| | | height: '100vh', |
| | | width: '100vw', |
| | | } |
| | | } else { |
| | | el.$fullStyle = { |
| | | ...el.style, |
| | | left: '0', |
| | | top: '0', |
| | | zIndex: '8', |
| | | position: 'absolute', |
| | | height: '100%', |
| | | width: '100%', |
| | | } |
| | | } |
| | | |
| | | }, |
| | | updated: (el: ElType, binding) => { |
| | | function setStyle(el: CSSStyleDeclaration, style: CSSStyleDeclaration) { |
| | | el.position = style.position |
| | | el.left = style.left |
| | | el.top = style.top |
| | | el.zIndex = style.zIndex |
| | | el.height = style.height |
| | | el.width = style.width |
| | | } |
| | | if (binding.value) { |
| | | setStyle(el.style, el.$fullStyle) |
| | | } else { |
| | | setStyle(el.style, el.$oldStyle) |
| | | } |
| | | } |
| | | } |
| | | export default vFull |
| | | |
| | | |