Kezdőoldal » Számítástechnika » Programozás » Vajon miért nem működnek így...

Vajon miért nem működnek így a jquery/javascript effektek?

Figyelt kérdés

Van egy kódom, egy képnézegető. A lényeg az, hogy találtam undorítóan csicsás effekteket, de csak a hide megy nekik, a show nem működik a kódomban egy click eseményre. ez a kód:

Tényleg nem akarok senkit fárasztani az a lényeg, hogy mindig átkerül a current class a következő képre, az aktuális current pedig hide-ol. Az ötletet a netről szedtem, nem én találtam ki, egyébként csak explode effekttel megy, mással nem.


Itt vannak legalul ezek a szörnyű áttűnések:

http://www.tutorialspoint.com/jquery/jquery-effects.htm

Legalul! Semmivel nem szuperál a dolog, csak és kizárólag az explode effekttel, ha mondjuk slide-ot rakok be, akkor eljut a hide-ig, de nem jeleníti meg, a show ebben a kódban elfelejtődik. Vajon miért lehet ez?

<html>

<!DOCTYPE html>

<meta charset="utf-8">


<html>

<head>

<script type = "text/javascript"

src = "http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>


<script type = "text/javascript"

src = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.3/jquery-ui.min.js"></script>

<script type = "text/javascript" language = "javascript">

$(document).ready(function(){

var a = 1;

$("#sum").text($("#piccontainer img").length);

var first_image = $("#piccontainer img:first-child");

var last_image = $("#piccontainer img:last-child");

$("#piccontainer img").hide();

first_image.addClass("current").show();

document.getElementById("demo").innerHTML = a;

var title = $("#piccontainer img").attr("alt");

$("#title").text(title);


$("#next").click(function() {

a+=1;

var current_image = $("#piccontainer img.current");

current_image.removeClass("current").hide("explode", {pieces: 64 }, 1000);

var titleactual = (current_image.next()).attr("alt");

$("#title").text(titleactual);

if (a<8) {

document.getElementById("demo").innerHTML = a;

current_image = current_image.next().addClass("current");

current_image = current_image.show("explode", {pieces: 64 }, 1000);

}

else {

current_image = first_image.addClass("current").show("explode", {pieces: 64 }, 1000);

$("#demo").text(1);

var titlefirst = $("#piccontainer img:first-child").attr("alt");

$("#title").text(titlefirst);

a=1;

}

});


$("#prev").click(function() {


var current_image = $("#piccontainer img.current");

current_image.removeClass("current").animate({opacity: 0, height: "0px", width: "0px"}, 500);

var titleactual = (current_image.prev()).attr("alt");

$("#title").text(titleactual);

if (a>1) {

a-=1;

document.getElementById("demo").innerHTML = a;

current_image = current_image.prev().addClass("current").animate({opacity: 1, height: "540px", width: "960px"}, 500);

}

else {

current_image = last_image.addClass("current").animate({opacity: 1, height: "540px", width: "960px"}, 500);

$("#demo").text($("#piccontainer img").length);

var titlelast = $("#piccontainer img:last-child").attr("alt");

$("#title").text(titlelast);

a=a+6;

}

});

});

</script>

<style>

#piccontainer {

width:960px;

height:540px;

padding:10px;

border: medium solid #000000;


}

#piccontainer img {

width:960px;

height:540px;

}

#id1 {

-webkit-transition: all 0.4s ease;

transition: all 0.4s ease;

position:absolute;

}

#id2 {

position:absolute;

}

#piccontainer img {

position:absolute;

}

#demo {

margin:auto;

float:left;

}

#sum {

margin:auto;

float:left;

}

#per {

float:left;

margin:auto;

margin-right:5px;

margin-left:5px;

}

#prev {

}

#next {

}

#title {

width:350px;

height:30px;

font-color:#FFFFFF;

font-size:20px;

text-align:center;

line-height:26px;

margin:auto;

background-color:#CCCCCC;

}

.buttoncontainer {

width:350px;

height:100px;

margin-left:auto;

margin-right:auto;

}

.container {

width:960px;

height:540px;

font-color:white;

}

.demopersum {

height:50px;

width:50px;

margin:auto;

}

.prevnext {

height:30px;

width:280px;

margin:auto;

}

</style>

</head>

<body>

<div id="piccontainer">


<img src="1.jpg" data="1" alt="Szélkerekek egy tanyán">

<img src="2.jpg" data="2" alt="A naplemente és a hős">

<img src="3.jpg" data="3" alt="Kavicsok">

<img src="4.jpg" data="4" alt="Szürreális világ">

<img src="5.jpg" data="5" alt="Pozitív érzés">

<img src="6.jpg" data="6" alt="A tenger">

<img src="7.jpg" data="7" alt="Éjjeli park">



</div>

<div class="container">

<div class="buttoncontainer">

<div id="title"></div>

<br>

<div>

<div class="prevnext">

<button id="prev">prev image</button>

<button id="next">next image</button>

<button id="wide">teljes képernyő</button>

</div>

</div>

<div class="demopersum">

<div id="demo"></div>

<div id="per"> / </div>

<div id="sum"></div>

</div>

</div>

</div>

</body>

</html>



#jQuery #képgaléria #képnézegető #image gallery #jquery effekt hiba #jquery show #jquery hide
2016. szept. 4. 00:27
 1/2 A kérdező kommentje:

Ha valaki véletlenül ilyen problémával küzd az a megoldás, hogy amikor eltűnik, akkor csak simán $(".valami").hide()

Amikor előtűnik, akkor pedig mehet az effekt. Vagy fordítva!

2016. szept. 4. 09:06
 2/2 anonim ***** válasza:

#1 js kódot soha ne illessz be ide, erre ott van a js fiddle, elég ha belinkeled. Rlég idegesítő, hogy fél órákat kell mobilon legörgetni.


#2 amíg a natív js programozás nem megy, addig ne foglalkozz jQueryvel. Autóvezetésnél is előbb a kreszt tanuljuk meg.


#3 a jQuery ismerete nélkül nehézkes jól implementálni, ismerd meg először a környezetet. ;)

2016. szept. 4. 12:29
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!