Бесплатная загрузка редактора переходов CSS в HTML, CSS и JavaScript
HTML:
<aside> <form id="app"> <button type="button" id="play">Re-Play</button>
<fieldset name="demo"> <legend>CSS Transition Editor</legend> <label> Transition <select> <option value="">none</option> <optgroup label="fade"> <option value="trs-fdd">fade-down</option> <option value="trs-fdl">fade-down-left</option> <option value="trs-fdr">fade-down-right</option> <option value="trs-fal">fade-left</option> <option value="trs-far">fade-right</option> <option value="trs-fau">fade-up</option> <option value="trs-ful">fade-up-left</option> <option value="trs-fur">fade-up-right</option> </optgroup> <optgroup label="flip"> <option value="trs-fld">flip-down</option> <option value="trs-fll">flip-left</option> <option value="trs-flr">flip-right</option> <option value="trs-flu">flip-up</option> </optgroup> <optgroup label="zoom"> <option value="trs-zoi">zoom-in</option> <option value="trs-zod">zoom-in-down</option> <option value="trs-ziu">zoom-in-up</option> <option value="trs-zoo">zoom-out</option> </optgroup> </select> </label> <label> Easing <select> <optgroup label="ease"> <option value="trstf-eas-1" selected>ease-1</option> <option value="trstf-eas-2">ease-2</option> <option value="trstf-eas-3">ease-3</option> <option value="trstf-eas-4">ease-4</option> <option value="trstf-eas-5">ease-5</option> </optgroup> <optgroup label="ease-in"> <option value="trstf-eai-1">ease-in-1</option> <option value="trstf-eai-2">ease-in-2</option> <option value="trstf-eai-3">ease-in-3</option> <option value="trstf-eai-4">ease-in-4</option> <option value="trstf-eai-5">ease-in-5</option> </optgroup> <optgroup label="ease-out"> <option value="trstf-eao-1">ease-out-1</option> <option value="trstf-eao-2">ease-out-2</option> <option value="trstf-eao-3">ease-out-3</option> <option value="trstf-eao-4">ease-out-4</option> <option value="trstf-eao-5">ease-out-5</option> </optgroup> <optgroup label="ease-in-out"> <option value="trstf-eio-1">ease-in-out-1</option> <option value="trstf-eio-2">ease-in-out-2</option> <option value="trstf-eio-3">ease-in-out-3</option> <option value="trstf-eio-4">ease-in-out-4</option> <option value="trstf-eio-5">ease-in-out-5</option> </optgroup> <optgroup label="ease-elastic"> <option value="trstf-eel-1">ease-elastic-1</option> <option value="trstf-eel-2">ease-elastic-2</option> <option value="trstf-eel-3">ease-elastic-3</option> <option value="trstf-eel-4">ease-elastic-4</option> <option value="trstf-eel-5">ease-elastic-5</option> </optgroup> <optgroup label="ease-squish"> <option value="trstf-esq-1">ease-squish-1</option> <option value="trstf-esq-2">ease-squish-2</option> <option value="trstf-esq-3">ease-squish-3</option> <option value="trstf-esq-4">ease-squish-4</option> <option value="trstf-esq-5">ease-squish-5</option> </optgroup> <option>linear</option> </select> </label> <label> Duration <select> <option value="trsdu-100">100ms</option> <option value="trsdu-200">200ms</option> <option value="trsdu-300">300ms</option> <option value="trsdu-400" selected>400ms</option> <option value="trsdu-500">500ms</option> <option value="trsdu-750">750ms</option> <option value="trsdu-1000">1000ms</option> <option value="trsdu-1500">1500ms</option> <option value="trsdu-2000">2000ms</option> </select> </label> <label> Delay <select> <option value="trsde-0" selected>0ms</option> <option value="trsde-25">25ms</option> <option value="trsde-50">50ms</option> <option value="trsde-75">75ms</option> <option value="trsde-100">100ms</option> <option value="trsde-150">150ms</option> <option value="trsde-250">250ms</option> <option value="trsde-500">500ms</option> <option value="trsde-750">750ms</option> <option value="trsde-1000">1000ms</option> <option value="trsde-1500">1500ms</option> <option value="trsde-2000">2000ms</option> </select> </label> </fieldset>
<fieldset name="demo1"> <legend>Child 1</legend> <label> Transition <select> <option value="">none</option> <optgroup label="fade"> <option value="trs-fdd">fade-down</option> <option value="trs-fdl">fade-down-left</option> <option value="trs-fdr">fade-down-right</option> <option value="trs-fal">fade-left</option> <option value="trs-far">fade-right</option> <option value="trs-fau">fade-up</option> <option value="trs-ful">fade-up-left</option> <option value="trs-fur">fade-up-right</option> </optgroup> <optgroup label="flip"> <option value="trs-fld">flip-down</option> <option value="trs-fll">flip-left</option> <option value="trs-flr">flip-right</option> <option value="trs-flu">flip-up</option> </optgroup> <optgroup label="zoom"> <option value="trs-zoi">zoom-in</option> <option value="trs-zod">zoom-in-down</option> <option value="trs-ziu">zoom-in-up</option> <option value="trs-zoo">zoom-out</option> </optgroup> </select> </label> <label> Easing <select> <option value="" selected>inherit</option> <optgroup label="ease"> <option value="trstf-eas-1">ease-1</option> <option value="trstf-eas-2">ease-2</option> <option value="trstf-eas-3">ease-3</option> <option value="trstf-eas-4">ease-4</option> <option value="trstf-eas-5">ease-5</option> </optgroup> <optgroup label="ease-in"> <option value="trstf-eai-1">ease-in-1</option> <option value="trstf-eai-2">ease-in-2</option> <option value="trstf-eai-3">ease-in-3</option> <option value="trstf-eai-4">ease-in-4</option> <option value="trstf-eai-5">ease-in-5</option> </optgroup> <optgroup label="ease-out"> <option value="trstf-eao-1">ease-out-1</option> <option value="trstf-eao-2">ease-out-2</option> <option value="trstf-eao-3">ease-out-3</option> <option value="trstf-eao-4">ease-out-4</option> <option value="trstf-eao-5">ease-out-5</option> </optgroup> <optgroup label="ease-in-out"> <option value="trstf-eio-1">ease-in-out-1</option> <option value="trstf-eio-2">ease-in-out-2</option> <option value="trstf-eio-3">ease-in-out-3</option> <option value="trstf-eio-4">ease-in-out-4</option> <option value="trstf-eio-5">ease-in-out-5</option> </optgroup> <optgroup label="ease-elastic"> <option value="trstf-eel-1">ease-elastic-1</option> <option value="trstf-eel-2">ease-elastic-2</option> <option value="trstf-eel-3">ease-elastic-3</option> <option value="trstf-eel-4">ease-elastic-4</option> <option value="trstf-eel-5">ease-elastic-5</option> </optgroup> <optgroup label="ease-squish"> <option value="trstf-esq-1">ease-squish-1</option> <option value="trstf-esq-2">ease-squish-2</option> <option value="trstf-esq-3">ease-squish-3</option> <option value="trstf-esq-4">ease-squish-4</option> <option value="trstf-esq-5">ease-squish-5</option> </optgroup> <option>linear</option> </select> </label> <label> Duration <select> <option value="" selected>inherit</option> <option value="trsdu-100">100ms</option> <option value="trsdu-200">200ms</option> <option value="trsdu-300">300ms</option> <option value="trsdu-400">400ms</option> <option value="trsdu-500">500ms</option> <option value="trsdu-750">750ms</option> <option value="trsdu-1000">1000ms</option> <option value="trsdu-1500">1500ms</option> <option value="trsdu-2000">2000ms</option> </select> </label> <label> Delay <select> <option value="trsde-0" selected>0ms</option> <option value="trsde-25">25ms</option> <option value="trsde-50">50ms</option> <option value="trsde-75">75ms</option> <option value="trsde-100">100ms</option> <option value="trsde-150">150ms</option> <option value="trsde-250">250ms</option> <option value="trsde-500">500ms</option> <option value="trsde-750">750ms</option> <option value="trsde-1000">1000ms</option> <option value="trsde-1500">1500ms</option> <option value="trsde-2000">2000ms</option> </select> </label> </fieldset>
<fieldset name="demo2"> <legend>Child 2</legend> <label> Transition <select> <option value="">none</option> <optgroup label="fade"> <option value="trs-fdd">fade-down</option> <option value="trs-fdl">fade-down-left</option> <option value="trs-fdr">fade-down-right</option> <option value="trs-fal">fade-left</option> <option value="trs-far">fade-right</option> <option value="trs-fau">fade-up</option> <option value="trs-ful">fade-up-left</option> <option value="trs-fur">fade-up-right</option> </optgroup> <optgroup label="flip"> <option value="trs-fld">flip-down</option> <option value="trs-fll">flip-left</option> <option value="trs-flr">flip-right</option> <option value="trs-flu">flip-up</option> </optgroup> <optgroup label="zoom"> <option value="trs-zoi">zoom-in</option> <option value="trs-zod">zoom-in-down</option> <option value="trs-ziu">zoom-in-up</option> <option value="trs-zoo">zoom-out</option> </optgroup> </select> </label> <label> Easing <select> <option value="" selected>inherit</option> <optgroup label="ease"> <option value="trstf-eas-1">ease-1</option> <option value="trstf-eas-2">ease-2</option> <option value="trstf-eas-3">ease-3</option> <option value="trstf-eas-4">ease-4</option> <option value="trstf-eas-5">ease-5</option> </optgroup> <optgroup label="ease-in"> <option value="trstf-eai-1">ease-in-1</option> <option value="trstf-eai-2">ease-in-2</option> <option value="trstf-eai-3">ease-in-3</option> <option value="trstf-eai-4">ease-in-4</option> <option value="trstf-eai-5">ease-in-5</option> </optgroup> <optgroup label="ease-out"> <option value="trstf-eao-1">ease-out-1</option> <option value="trstf-eao-2">ease-out-2</option> <option value="trstf-eao-3">ease-out-3</option> <option value="trstf-eao-4">ease-out-4</option> <option value="trstf-eao-5">ease-out-5</option> </optgroup> <optgroup label="ease-in-out"> <option value="trstf-eio-1">ease-in-out-1</option> <option value="trstf-eio-2">ease-in-out-2</option> <option value="trstf-eio-3">ease-in-out-3</option> <option value="trstf-eio-4">ease-in-out-4</option> <option value="trstf-eio-5">ease-in-out-5</option> </optgroup> <optgroup label="ease-elastic"> <option value="trstf-eel-1">ease-elastic-1</option> <option value="trstf-eel-2">ease-elastic-2</option> <option value="trstf-eel-3">ease-elastic-3</option> <option value="trstf-eel-4">ease-elastic-4</option> <option value="trstf-eel-5">ease-elastic-5</option> </optgroup> <optgroup label="ease-squish"> <option value="trstf-esq-1">ease-squish-1</option> <option value="trstf-esq-2">ease-squish-2</option> <option value="trstf-esq-3">ease-squish-3</option> <option value="trstf-esq-4">ease-squish-4</option> <option value="trstf-esq-5">ease-squish-5</option> </optgroup> <option>linear</option> </select> </label> <label> Duration <select> <option value="" selected>inherit</option> <option value="trsdu-100">100ms</option> <option value="trsdu-200">200ms</option> <option value="trsdu-300">300ms</option> <option value="trsdu-400">400ms</option> <option value="trsdu-500">500ms</option> <option value="trsdu-750">750ms</option> <option value="trsdu-1000">1000ms</option> <option value="trsdu-1500">1500ms</option> <option value="trsdu-2000">2000ms</option> </select> </label> <label> Delay <select> <option value="trsde-0" selected>0ms</option> <option value="trsde-25">25ms</option> <option value="trsde-50">50ms</option> <option value="trsde-75">75ms</option> <option value="trsde-100">100ms</option> <option value="trsde-150">150ms</option> <option value="trsde-250">250ms</option> <option value="trsde-500">500ms</option> <option value="trsde-750">750ms</option> <option value="trsde-1000">1000ms</option> <option value="trsde-1500">1500ms</option> <option value="trsde-2000">2000ms</option> </select> </label> </fieldset>
<fieldset name="demo3"> <legend>Child 3</legend> <label> Transition <select> <option value="">none</option> <optgroup label="fade"> <option value="trs-fdd">fade-down</option> <option value="trs-fdl">fade-down-left</option> <option value="trs-fdr">fade-down-right</option> <option value="trs-fal">fade-left</option> <option value="trs-far">fade-right</option> <option value="trs-fau">fade-up</option> <option value="trs-ful">fade-up-left</option> <option value="trs-fur">fade-up-right</option> </optgroup> <optgroup label="flip"> <option value="trs-fld">flip-down</option> <option value="trs-fll">flip-left</option> <option value="trs-flr">flip-right</option> <option value="trs-flu">flip-up</option> </optgroup> <optgroup label="zoom"> <option value="trs-zoi">zoom-in</option> <option value="trs-zod">zoom-in-down</option> <option value="trs-ziu">zoom-in-up</option> <option value="trs-zoo">zoom-out</option> </optgroup> </select> </label> <label> Easing <select> <option value="" selected>inherit</option> <optgroup label="ease"> <option value="trstf-eas-1">ease-1</option> <option value="trstf-eas-2">ease-2</option> <option value="trstf-eas-3">ease-3</option> <option value="trstf-eas-4">ease-4</option> <option value="trstf-eas-5">ease-5</option> </optgroup> <optgroup label="ease-in"> <option value="trstf-eai-1">ease-in-1</option> <option value="trstf-eai-2">ease-in-2</option> <option value="trstf-eai-3">ease-in-3</option> <option value="trstf-eai-4">ease-in-4</option> <option value="trstf-eai-5">ease-in-5</option> </optgroup> <optgroup label="ease-out"> <option value="trstf-eao-1">ease-out-1</option> <option value="trstf-eao-2">ease-out-2</option> <option value="trstf-eao-3">ease-out-3</option> <option value="trstf-eao-4">ease-out-4</option> <option value="trstf-eao-5">ease-out-5</option> </optgroup> <optgroup label="ease-in-out"> <option value="trstf-eio-1">ease-in-out-1</option> <option value="trstf-eio-2">ease-in-out-2</option> <option value="trstf-eio-3">ease-in-out-3</option> <option value="trstf-eio-4">ease-in-out-4</option> <option value="trstf-eio-5">ease-in-out-5</option> </optgroup> <optgroup label="ease-elastic"> <option value="trstf-eel-1">ease-elastic-1</option> <option value="trstf-eel-2">ease-elastic-2</option> <option value="trstf-eel-3">ease-elastic-3</option> <option value="trstf-eel-4">ease-elastic-4</option> <option value="trstf-eel-5">ease-elastic-5</option> </optgroup> <optgroup label="ease-squish"> <option value="trstf-esq-1">ease-squish-1</option> <option value="trstf-esq-2">ease-squish-2</option> <option value="trstf-esq-3">ease-squish-3</option> <option value="trstf-esq-4">ease-squish-4</option> <option value="trstf-esq-5">ease-squish-5</option> </optgroup> <option>linear</option> </select> </label> <label> Duration <select> <option value="" selected>inherit</option> <option value="trsdu-100">100ms</option> <option value="trsdu-200">200ms</option> <option value="trsdu-300">300ms</option> <option value="trsdu-400">400ms</option> <option value="trsdu-500">500ms</option> <option value="trsdu-750">750ms</option> <option value="trsdu-1000">1000ms</option> <option value="trsdu-1500">1500ms</option> <option value="trsdu-2000">2000ms</option> </select> </label> <label> Delay <select> <option value="trsde-0" selected>0ms</option> <option value="trsde-25">25ms</option> <option value="trsde-50">50ms</option> <option value="trsde-75">75ms</option> <option value="trsde-100">100ms</option> <option value="trsde-150">150ms</option> <option value="trsde-250">250ms</option> <option value="trsde-500">500ms</option> <option value="trsde-750">750ms</option> <option value="trsde-1000">1000ms</option> <option value="trsde-1500">1500ms</option> <option value="trsde-2000">2000ms</option> </select> </label> </fieldset>
<fieldset> <legend>Variables</legend> <label> Zoom-in <input type="number" name="--zi" value="0.6" step="0.1" min="0.1" max="1" /> </label> <label> Zoom-out <input type="number" name="--zo" value="1.2" step="0.1" min="1" max="5" /> </label> <label> Translate X <input type="number" name="--tx" value="55" step="1" min="1" max="999" data-suffix="px" /> </label> <label> Translate Y <input type="number" name="--ty" value="110" step="1" min="1" max="999" data-suffix="px" /> </label> </fieldset>
</form> </aside>
<main>
<div id="demo"> <div id="demo1"> <img src="https://assets.stoumann.dk/img/color.jpg" /> </div> <div id="demo2"> <img src="https://assets.stoumann.dk/img/gallery01.jpg" /> </div> <div id="demo3"> <img src="https://assets.stoumann.dk/img/gallery04.jpg" /> </div> </div>
<p><strong>How to use:</strong> Select a transition for the main wrapper or one of it's child-elements. Try to play around with individual transitions, easings, durations and delays.<br /> At the bottom of the sidebar, you can edit <em>custom properties</em> for finer control of offset- and zoom-transitions. </p> <details> <summary>See code</summary> <pre id="code">Code here ...</pre> </details> </main>
Вас также может заинтересовать загрузка: 3D RotateText Hover menu (gsap) в HTML, CSS и JavaScript
CSS:
/** * Transition Module * @version 1.0.35 * @summary 09-05-2022 * @author Mads Stoumann * @description Using `data-trs` attribute to handle transitions. * Credits to AOS: https://michalsnik.github.io/aos/ and Open Props: https://open-props.style/
* Abbreviations: * .trs-: transition-name * .trsde-: transition-delay * .trsdu-: transition-duration * .trstf-: transition-timing-function (easing)
* To trigger a transition, add the class `trs` to the element. * You should only add the class to the *outermost* element with a `trs-`, children will be animated automatically. */
@import 'https://unpkg.com/[email protected]/src/props.easing.css';
:where([class*="trs-"]) { --dg: 100deg; --tx: 55px; --ty: 110px; --zi: 0.6; --zo: 1.2; }
:is([class*="trs-"].trs) { opacity: 1; transform: translateZ(0) scale(1); transition: all var(--duration, 400ms) var(--delay, 0ms) var(--easing, var(--ease-1, ease)); }
:is(.trs [class*="trs-"]) { opacity: 1; transform: translateZ(0); transition-timing-function: var(--easing, ease-in-out); transition-delay: var(--delay, 0ms); transition-duration: var(--duration, 400ms); }
/* .trs .trs-fld { transform: perspective(2500px) rotate(0deg); } */
/* TRANSITIONS */
/* FADE */ .trs-fdd { opacity: 0; transform: translate3d(0px, calc(-1 * var(--ty)), 0); } .trs-fdl { opacity: 0; transform: translate3d(calc(-1 * var(--tx)), calc(-1 * var(--ty)), 0); } .trs-fdr { opacity: 0; transform: translate3d(var(--tx), calc(-1 * var(--ty)), 0); } .trs-fal { opacity: 0; transform: translate3d(calc(-1 * var(--tx)), 0px, 0); } .trs-far { opacity: 0; transform: translate3d(var(--tx), 0px, 0); } .trs-fau { opacity: 0; transform: translate3d(0px, var(--ty), 0); } .trs-ful { opacity: 0; transform: translate3d(calc(-1 * var(--tx)), var(--ty), 0); } .trs-fur { opacity: 0; transform: translate3d(var(--tx), var(--ty), 0); }
/* FLIP */ .trs-fld { backface-visibility: hidden; transform: perspective(2500px) rotateX(var(--dg)); } .trs-fll { backface-visibility: hidden; transform: perspective(2500px) rotateY(calc(0deg - var(--dg))); } .trs-flr { backface-visibility: hidden; transform: perspective(2500px) rotateY(var(--dg)); } .trs-flu { backface-visibility: hidden; transform: perspective(2500px) rotateX(calc(0deg - var(--dg))); }
/* ZOOM */ .trs-zoi { opacity: 0; transform: scale(var(--zi)); } .trs-zod { opacity: 0; transform: translate3d(0px, calc(-1 * var(--ty)), 0) scale(var(--zi)); } .trs-ziu { opacity: 0; transform: translate3d(0px, var(--ty), 0) scale(var(--zi)); } .trs-zoo { opacity: 0; transform: scale(var(--zo)) ; }
/* DELAYS */ .trsde-0 { --delay: 0ms; } .trsde-25 { --delay: 25ms; } .trsde-50 { --delay: 50ms; } .trsde-75 { --delay: 75ms; } .trsde-100 { --delay: 100ms; } .trsde-150 { --delay: 150ms; } .trsde-250 { --delay: 250ms; } .trsde-500 { --delay: 500ms; } .trsde-750 { --delay: 750ms; } .trsde-1000 { --delay: 1000ms; } .trsde-1500 { --delay: 1500ms; } .trsde-2000 { --delay: 2000ms; }
/* DURATIONS */ .trsdu-100 { --duration: 100ms; } .trsdu-200 { --duration: 200ms; } .trsdu-300 { --duration: 300ms; } .trsdu-400 { --duration: 400ms; } .trsdu-500 { --duration: 500ms; } .trsdu-750 { --duration: 750ms; } .trsdu-1000 { --duration: 1000ms; } .trsdu-1500 { --duration: 1500ms; } .trsdu-2000 { --duration: 2000ms; }
/* TIMING FUNCTIONS */ .trstf-eas-1 { --easing: var(--ease-1); } .trstf-eas-2 { --easing: var(--ease-2); } .trstf-eas-3 { --easing: var(--ease-3); } .trstf-eas-4 { --easing: var(--ease-4); } .trstf-eas-5 { --easing: var(--ease-5); } .trstf-eai-1 { --easing: var(--ease-in-1); } .trstf-eai-2 { --easing: var(--ease-in-2); } .trstf-eai-3 { --easing: var(--ease-in-3); } .trstf-eai-4 { --easing: var(--ease-in-4); } .trstf-eai-5 { --easing: var(--ease-in-5); } .trstf-eao-1 { --easing: var(--ease-out-1); } .trstf-eao-2 { --easing: var(--ease-out-2); } .trstf-eao-3 { --easing: var(--ease-out-3); } .trstf-eao-4 { --easing: var(--ease-out-4); } .trstf-eao-5 { --easing: var(--ease-out-5); } .trstf-eio-1 { --easing: var(--ease-in-out-1); } .trstf-eio-2 { --easing: var(--ease-in-out-2); } .trstf-eio-3 { --easing: var(--ease-in-out-3); } .trstf-eio-4 { --easing: var(--ease-in-out-4); } .trstf-eio-5 { --easing: var(--ease-in-out-5); } .trstf-eel-1 { --easing: var(--ease-elastic-1); } .trstf-eel-2 { --easing: var(--ease-elastic-2); } .trstf-eel-3 { --easing: var(--ease-elastic-3); } .trstf-eel-4 { --easing: var(--ease-elastic-4); } .trstf-eel-5 { --easing: var(--ease-elastic-5); } .trstf-esq-1 { --easing: var(--ease-squish-1); } .trstf-esq-2 { --easing: var(--ease-squish-2); } .trstf-esq-3 { --easing: var(--easing-squish-3); } .trstf-esq-4 { --easing: var(--easing-squish-4); } .trstf-esq-5 { --easing: var(--easing-squish-5); } .trstf-lin { --easing: linear; }
/* FOR DEMO */ * { box-sizing: border-box; } aside, pre { background: hsl(210, 99%, 5%); color: hsl(190, 10%, 90%); overflow-x: auto; padding: 1ch; } body { block-size: 100vh; display: grid; font-family: ui-sans-serif, system-ui, sans-serif; font-size: small; grid-template-columns: 15rem 1fr; margin: unset; } button { background-color: hsl(210, 99%, 52%); border: 0; border-radius: 2em; color: hsl(210, 99%, 95%); inline-size: 100%; margin-block: .5em 1em; padding: 1em 2em; } fieldset { border: 0; padding: 1em 0; } img { block-size: 100%; inset: 0; object-fit: cover; position: absolute; inline-size: 100%; } input, select { border: 0; border-radius: .25em; font-size: inherit; inline-size: 100%; margin-block: .25em .75em; padding: .25em .5em; } legend { border-block-end: 1px solid #FFF; display: block; inline-size: 100%; padding-block: .5em; } main { margin: 2em; overflow: hidden; } pre { tab-size: 2; } #demo { display: grid; gap: 1em; } #demo1 { aspect-ratio: 16 / 9; inline-size: 100%; grid-column: 1 / span 2; position: relative; } #demo2, #demo3 { aspect-ratio: 16 / 9; position: relative; inline-size: 100%; }
@media (min-width: 768px) { #demo { grid-template-columns: repeat(3, 1fr); } #demo1 { grid-column: 1 / span 2; grid-row: 1 / span 2; } #demo2, #demo3 { aspect-ratio: unset; } }
JavaScript:
const cleanIt = (code) => code.replace(/<img?.+\n\t/gi,'');
const playIt = () => { demo.classList.remove('trs'); setTimeout(() => { demo.classList.add('trs'); }, 400); code.innerText = cleanIt(demo.outerHTML); }
app.addEventListener('input', event => {
const node = event.target;
if (node.name) {
demo.style.setProperty(node.name, node.value + (node.dataset.suffix||''));
return;
}
const group = node.closest('fieldset');
document.getElementById(group.name).className = [...group.elements].map(input => input.value).join(' ').replace(/ +/g, ' ');
playIt();
})
play.addEventListener('click', () => playIt());\
Фрагменты кода HTML, CSS и JavaScript включены, AllWebCodes.com
Сделанный! И наслаждайтесь фрагментами CSS Transition Editor