Kezdőoldal » Számítástechnika » Programozás » [HTML, CSS, JavaScript]...

[HTML, CSS, JavaScript] Csináltam egy olyat, hogy egy gomb megnyomására az adott div elkezd forogni (classList. Add ('forgasd') -ot használva. Ennek csinálni szeretnék egy olyat, hogy megállítsa a forgást, úgy, hogy az adott irányban maradjon?

Figyelt kérdés

Tehát ha pl elkezdett forogni és már 40deg-nél jár, én ekkor megnyomom a gombot ami hívja a function StopNow()-ot, és úgy maradjon 40deg-en a rotate-je a divnek, amikor pedig újra megnyomom hogy forogjon, ugyan onnan kezdje a forgást (tehát 40degtől, ne kezdje előről 0-tól).

a kód így néz ki:


CSS: .load_anim{animation: spin 5s linear infinite;}


@keyframes spin {

0% { transform: rotate(0deg); }

100% { transform: rotate(360deg); }

}


JS: var element = document.getElementById('load');

function Start(){

element.classList.add('load_anim');

}


2018. márc. 3. 07:34
 1/2 anonim ***** válasza:
100%

A barátod az animation-play-state (CSS) / animationPlayState (JS) lesz.


Egy példa:

[link]

2018. márc. 3. 14:15
Hasznos számodra ez a válasz?
 2/2 sharkxxx ***** válasza:

Itt van egy CSS animation nélküli megoldás is.

Ez régebbi böngészőkben is működik.

<!DOCTYPE html>

<html>

<head>

<style>

#animated {

    width: 100px;

    height: 100px;

    background-color: red;

}

</style>

</head>

<body>

<button onclick="Start();">Start</button>

<button onclick="Pause();">Pause</button>

<button onclick="Play();">Start/Pause</button>

<br />

<br />

<div id="animated"></div>

<script>

var fps = 30; // frames per seconds

var animation_duration = 5; // seconds

var element = document.getElementById('animated');

var prev_ticks = Date.now();

function startTime() {

    var ticks = Date.now();

    var dt = (ticks - prev_ticks);

    myAnimate(dt);

    prev_ticks = ticks;

    var t = setTimeout(function(){ startTime() }, 1000/fps);

}

var alpha = 0;

var isAnimationRunning = false;

function myAnimate(dt) {

    if (isAnimationRunning) {

        alpha += (360/(animation_duration*1000))*dt;

        if (alpha > 360) {

            alpha -= 360;

        }

        var style = ""

        +"transform:        rotate("+alpha+"deg);"

        +"-webkit-transform: rotate("+alpha+"deg);"

        +"-moz-transform:    rotate("+alpha+"deg);"

        +"-ms-transform:    rotate("+alpha+"deg);";

        element.setAttribute("style", style);

    }

}

function Start() {

    isAnimationRunning = true;

}

function Pause() {

    isAnimationRunning = false;

}

function Play() {

    isAnimationRunning = !isAnimationRunning;

}

document.body.onload = startTime;

</script>

</body>

</html>

2018. márc. 3. 16:17
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!