kzen.dev
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
 aWebDeveloper
aWebDeveloper
Question

Jquery zmeniť farbu pozadia

Skúšal som jquery s týmto príkladom:

 $(document).ready(function(){
      $("button").mouseover(function(){
        $("p#44.test").css("background-color","yellow");
        $("p#44.test").hide(1500);
        $("p#44.test").show(1500);
        $("p#44.test").css("background-color","red");
      });
    });

Očakával som, že sa stane nasledovné:

1. Color of <p> to turn yellow
2. <p> to slowly fade
3. <p> to slowly show
4. Color of <p> to turn red

Ale v skutočnosti sa stalo toto:

1. <p> turned red
2. <p> slowly hid away
3. <p> slowly showed

Prečo je to tak?

123 2010-11-26T07:03:12+00:00 3
Paul Sasik
Paul Sasik
Edited question 6 január 2014 в 8:02
Programovanie
jquery
Solution / Answer
Klemen Slavič
Klemen Slavič
26 november 2010 в 7:12
2010-11-26T07:12:27+00:00
Viac na
Zdroj
Upraviť
#11411496

Funkcia .css() nečakajúca na spustenie animácie, je okamžitá.

Aby ste dosiahli správanie, o ktoré vám ide, museli by ste urobiť nasledovné:

$(document).ready(function() {
  $("button").mouseover(function() {
    var p = $("p#44.test").css("background-color", "yellow");
    p.hide(1500).show(1500);
    p.queue(function() {
      p.css("background-color", "red");
    });
  });
});

Funkcia .queue() čaká na vyčerpanie bežiacich animácií a potom spustí čokoľvek, čo je v dodanej funkcii.

 fureigh
fureigh
Edited answer 9 december 2013 в 11:18
195
0
Artificial intelligence to parse product page
productapi.dev
Peter &#214;rneholm
Peter Örneholm
26 november 2010 в 7:13
2010-11-26T07:13:11+00:00
Viac na
Zdroj
Upraviť
#11411497

Takto by to malo byť:

Kód:

$(function(){
  $("button").mouseover(function(){
    var $p = $("#P44");
    $p.stop()
      .css("background-color","yellow")
      .hide(1500, function() {
          $p.css("background-color","red")
            .show(1500);
      });
  });
});

Demo:

Vysvetlenie:

Pred prepnutím farby pozadia musíte počkať na spätné volanie animačných funkcií. Tiež by ste nemali používať len číselné ID:s, a ak tam máte ID vášho <p>, nemali by ste'do selektora zahrnúť triedu.

Taktiež som vylepšil váš kód (cachovanie objektu jQuery, reťazenie atď.).

Aktualizácia: Ako navrhol VKolev, farba sa teraz mení, keď je položka skrytá.

Peter &#214;rneholm
Peter Örneholm
Edited answer 26 november 2010 в 12:36
19
0
Artificial intelligence to parse product page
productapi.dev
 austinbv
austinbv
26 november 2010 в 7:11
2010-11-26T07:11:49+00:00
Viac na
Zdroj
Upraviť
#11411495

skúste nastaviť oneskorenie na posledné blednutie farby.

$("p#44.test").delay(3000).css("background-color","red");

https://stackoverflow.com/questions/70579/what-is-a-valid-value-for-id-attributes-in-html ID's nemôže začínať číslicami!!!

 Community
Community
Edited answer 23 máj 2017 в 11:47
14
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
Inessa bu
Registered pred mesiacom
2
Denis Babushkin
Registered pred mesiacom
3
asakuno asakuno
Registered pred mesiacom
4
aldo salerno
Registered pred mesiacom
5
Анна Батицкая
Registered pred mesiacom
Artificial intelligence to parse product page
productapi.dev
DA
DE
EL
ES
FR
ID
IT
JA
KO
LT
NL
NO
PT
RO
RU
SK
SL
TR
ZH
© kzen.dev 2023
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora