|
1 | 1 | import { isElement } from "./utility.js" |
2 | | -import Data from "./data.js" |
3 | 2 |
|
4 | | -export function init(id) { |
5 | | - const fs = { toggleElement: null }; |
6 | | - Data.set(id, fs) |
7 | | - |
8 | | - fs.toggle = options => { |
9 | | - if (options.id) { |
10 | | - fs.toggleElement = document.getElementById(options.id) |
11 | | - } |
12 | | - else if (options.element && isElement(options.element)) { |
13 | | - fs.toggleElement = el |
14 | | - } |
15 | | - else { |
16 | | - fs.toggleElement = document.documentElement |
17 | | - } |
| 3 | +export function toggle(options) { |
| 4 | + let el = null; |
| 5 | + options = options || {}; |
| 6 | + if (options.id) { |
| 7 | + el = document.getElementById(options.id); |
| 8 | + } |
| 9 | + else if (options.element && isElement(options.element)) { |
| 10 | + el = options.element; |
| 11 | + } |
| 12 | + else { |
| 13 | + el = document.documentElement |
| 14 | + } |
18 | 15 |
|
| 16 | + if (el !== null) { |
19 | 17 | if (isFullscreen()) { |
20 | | - exit() |
| 18 | + exit(); |
21 | 19 | } |
22 | 20 | else { |
23 | | - fs.enter() |
| 21 | + enterFullscreen(el); |
24 | 22 | } |
25 | 23 | } |
| 24 | +} |
26 | 25 |
|
27 | | - fs.enter = () => { |
28 | | - fs.toggleElement.requestFullscreen() || |
29 | | - fs.toggleElement.webkitRequestFullscreen || |
30 | | - fs.toggleElement.mozRequestFullScreen || |
31 | | - fs.toggleElement.msRequestFullscreen |
| 26 | +const enterFullscreen = el => { |
| 27 | + el.requestFullscreen() || el.webkitRequestFullscreen || el.mozRequestFullScreen || el.msRequestFullscreen |
32 | 28 |
|
33 | | - // 处理 ESC 按键退出全屏 |
34 | | - var handler = setTimeout(() => { |
35 | | - clearTimeout(handler); |
| 29 | + // 处理 ESC 按键退出全屏 |
| 30 | + var handler = setTimeout(() => { |
| 31 | + clearTimeout(handler); |
36 | 32 |
|
37 | | - const fullscreenCheck = () => { |
38 | | - if (!isFullscreen()) { |
39 | | - fs.toggleElement.classList.remove('bb-fs-open'); |
40 | | - document.documentElement.classList.remove('bb-fs-open'); |
41 | | - } |
42 | | - else { |
43 | | - fs.toggleElement.classList.add('bb-fs-open') |
44 | | - requestAnimationFrame(fullscreenCheck); |
45 | | - } |
| 33 | + const fullscreenCheck = () => { |
| 34 | + if (!isFullscreen()) { |
| 35 | + el.classList.remove('bb-fs-open'); |
| 36 | + document.documentElement.classList.remove('bb-fs-open'); |
46 | 37 | } |
47 | | - requestAnimationFrame(fullscreenCheck); |
48 | | - }, 200); |
49 | | - } |
50 | | -} |
51 | | - |
52 | | -export function execute(id, options) { |
53 | | - const fs = Data.get(id) |
54 | | - if (fs) { |
55 | | - fs.toggle(options); |
56 | | - } |
57 | | -} |
58 | | - |
59 | | -export function dispose(id) { |
60 | | - Data.remove(id) |
| 38 | + else { |
| 39 | + el.classList.add('bb-fs-open') |
| 40 | + requestAnimationFrame(fullscreenCheck); |
| 41 | + } |
| 42 | + } |
| 43 | + requestAnimationFrame(fullscreenCheck); |
| 44 | + }, 200); |
61 | 45 | } |
62 | 46 |
|
63 | 47 | const isFullscreen = () => { |
|
0 commit comments