This commit is contained in:
Rudis Muiznieks 2020-06-14 14:25:44 -05:00
parent 912cbac798
commit 0c803bf677
2 changed files with 48 additions and 5 deletions

View File

@ -48,7 +48,7 @@ export class CRT implements IEffect {
#${this.wrapperId} { #${this.wrapperId} {
position: relative; position: relative;
} }
#${this.containerId}::before { #${this.wrapperId} > #${this.containerId}::before {
content: " "; content: " ";
display: block; display: block;
position: absolute; position: absolute;
@ -70,7 +70,7 @@ export class CRT implements IEffect {
pointer-events: none; pointer-events: none;
} }
${this.makeFlickerFrames()} ${this.makeFlickerFrames()}
#${this.containerId}::after { #${this.wrapperId} > #${this.containerId}::after {
content: " "; content: " ";
display: block; display: block;
position: absolute; position: absolute;
@ -85,7 +85,7 @@ export class CRT implements IEffect {
animation: flicker_${this.styleId} 0.15s infinite; animation: flicker_${this.styleId} 0.15s infinite;
} }
${this.makeSeparationFrames()} ${this.makeSeparationFrames()}
#${this.containerId} { #${this.wrapperId} > #${this.containerId} {
animation: separation_${this.styleId} 1.6s infinite; animation: separation_${this.styleId} 1.6s infinite;
} }
`).appendTo($('body')); `).appendTo($('body'));
@ -111,10 +111,14 @@ export class CRT implements IEffect {
} }
public execute(): void { public execute(): void {
if(!$(`#${this.wrapperId}`).length) {
$(`#${this.containerId}`).wrap($('<div />').attr('id', this.wrapperId)); $(`#${this.containerId}`).wrap($('<div />').attr('id', this.wrapperId));
} }
}
public stop(): void { public stop(): void {
if($(`#${this.wrapperId}`).length) {
$(`#${this.containerId}`).unwrap(`#${this.wrapperId}`); $(`#${this.containerId}`).unwrap(`#${this.wrapperId}`);
} }
}
} }

39
test/CRT.html Normal file
View File

@ -0,0 +1,39 @@
<!doctype html>
<html lang='en'>
<head>
<title>CRT Test</title>
<meta charset='utf-8'>
<script src='../build/spooky.min.js'></script>
<script>
var crt;
document.addEventListener("DOMContentLoaded", function(event) {
crt = new Spooky.CRT({
containerId: 'crt',
screenDoorColor: '#040',
screenDoorSize: 4,
screenDoorOpacity: 0.5,
separationColor: '#ff0',
separationBlur: 3,
separationDistance: 8,
separationOpacity: 0.25
});
});
</script>
<style>
#crt {
padding: 2em;
background-color: #020;
color: #0f0;
font-family: monospace;
font-size: 3em;
}
</style>
</head>
<body>
<div id='crt'>
This is an old CRT monitor.
</div>
<button onclick='crt.execute()'>Start</button>
<button onclick='crt.stop()'>Stop</button>
</body>
</html>