Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: toggle() toimii, slideToggle() ei

Sivun loppuun

Macro [29.04.2012 13:52:53]

#

Terve

Kirjoitin sivulleni tälläisen pätkän koodia

$(function() {
  $("#login").hide();

  $("#loginlink").click(function(e) {
    e.preventDefault();
    $("#login").slideToggle(200);
  });
});

Nyt ei kumminkaan tapahdu mitään. Jos vaihdan slideToggle-funktion paikalle togglen niin alkaa toimia. Missä vika, kun slideToggle ei toimi? #login on form-elementti koodissa.

combo [29.04.2012 15:34:01]

#

Itse sain toimimaan JS Binin kautta kun testasin: http://jsbin.com/afapen/2/edit#preview

Macro [29.04.2012 15:51:37]

#

Jeps, mutta jostain syystä se ei silti aukea omalla sivullani.

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<link rel="stylesheet" href="styles.css" type="text/css">
	<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript" src="js/custom.js"></script> <!-- Tämä sisältää aloitusviestissä olevan koodin -->

        <title></title>
    </head>
    <body>
		<div id="document">
			<div id="header">
				<div id="headercontent">
					<span id="logo">
						...
					</span>

					<ul class="menu">
						<li><a href="#">...</a></li>
						<li><a href="#">...</a></li>
						<li><a href="#">...</a></li>
					</ul>

					<div style="float: right;">
						<a href="#" id="loginlink" style="float: right">kirjautuminen</a>

						<form id="login" method="POST">
							<p>
								<input id="username" type="text" placeholder="Käyttäjätunnus" required>
								<input id="password" type="password" placeholder="Salasana" required>
							</p>
							<p>
								<input type="submit" id="submit" value="Kirjaudu">
							</p>
						</form>
					</div>
				</div>
			</div>
                        ...

Nähtävästi toimi taas hienosti noitten sisennyksien kopioiminen Netbeansistä...

Mitenköhän muuten tuon formin saisi aukeamaan muun sivuston päälle, eikä sitä, että se työntää muut elementit alta pois? z-index ei auttanut (toimiiko se vain saman elementin sisässä olevien elementtien kanssa?) ja position: absolute laittaa sen väärään reunaan linkkiin nähden. Haluttu tulos näyttäisi tältä.

combo [29.04.2012 16:11:06]

#

Macro kirjoitti:

Jeps, mutta jostain syystä se ei silti aukea omalla sivullani.

Sisältääkö custom.js jotain muuta myös? Omilla sivuillani toimii edelleen, myös ylläolevan lähdekoodisi kautta.

Macro kirjoitti:

Mitenköhän muuten tuon formin saisi aukeamaan muun sivuston päälle, eikä sitä, että se työntää muut elementit alta pois? z-index ei auttanut (toimiiko se vain saman elementin sisässä olevien elementtien kanssa?) ja position: absolute laittaa sen väärään reunaan linkkiin nähden. Haluttu tulos näyttäisi tältä.

Pistäpäs sivustos CSS-tiedosto johonkin näkyville.

form#login {
position: relative;
z-index: 200;
}

Edit: voisi toimia paremmin, jos pistäisit #login-elementin divin sisään (<div id="login">
<form>
)

Macro [29.04.2012 16:21:41]

#

custom.js sisältää myös nämä koodit.

        $("#img1, #img2, #img3").hide();
	$("#img1, #img2, #img3").css({marginLeft: "-500px"})

	$("#img3").animate({
		opacity: "show",
		marginLeft: "0px"
	}, 600, "easein", function() {
		$("#img2").animate({
			opacity: "show",
			marginLeft: "0px"
		}, 600, "easein", function() {
			$("#img1").animate({
				opacity: "show",
				marginLeft: "0px"
			}, 600, "easein");
		});
	});


	$(".menu").lavaLamp({
		fx: "backout",
		speed: 500,
		click: function(event, menuItem) {
			return false;
		}
	});

Lisäksi tonne HTML-koodiin tulee Lavalamp- ja Easing-pluginit.

CSS-tiedostoa voi tutkia vaikka täällä.

Kokeilin myös mitä ehdotit muokkauksen jälkeen, mutta ei sekään auttanut. Sen aukeamiseen sivun päälle ei auttanut myöskään tuo CSS-koodisi.

combo [29.04.2012 16:31:30]

#

custom.js-tiedostossa on tässä jokin vika (täytynee tutkia tarkemmin..):

$(".menu").lavaLamp({
	fx: "backout",
	speed: 500,
	click: function(event, menuItem) {
		return false;
	}
});

Macro [29.04.2012 16:36:49]

#

Ai? Kyllä se tekee sen mitä sen kuuluukin eikä se vaikuta muun sivun toimintaan.

combo [29.04.2012 16:40:09]

#

Macro kirjoitti:

Ai? Kyllä se tekee sen mitä sen kuuluukin eikä se vaikuta muun sivun toimintaan.

Mutta kun sen jälkeen ei toimi tuo login-elementin slideToggle:

Jos nuo on näin siellä custom.js:ssä:

	$(".menu").lavaLamp({
		fx: "backout",
		speed: 500,
		click: function(event, menuItem) {
			return false;
		}
	});


$(function() {
  $("#login").hide();

  $("#loginlink").click(function(e) {
    e.preventDefault();
    $("#login").slideToggle(200);
  });
});

Macro [29.04.2012 16:44:25]

#

Ei mulla kyllä ilman sitäkään slideToggle toimi. Sen pitää olla kyllä kanssa tuolla $(function(){:n sisällä.

combo [29.04.2012 16:46:02]

#

Mulla toimii, esimerkit: http://ilmera.net/scripts/jquery-slidetoggle.html, http://ilmera.net/scripts/custom.js.

Macro [29.04.2012 16:52:00]

#

Strange. http://macrostests.host56.com/testi/ :/

En voi kumminkaan tehdä noin kuin sulla on tossa tiedostossa, kun sillon muut toiminnot lakkaavat toimimasta...

combo [29.04.2012 16:56:29]

#

Macro kirjoitti:

Strange. http://macrostests.host56.com/testi/ :/

En voi kumminkaan tehdä noin kuin sulla on tossa tiedostossa, kun sillon muut toiminnot lakkaavat toimimasta...

Kopsasin tuolta sivuiltasi suoraan custom.js:n lähdekoodin ja toimii.

Macro [29.04.2012 17:04:39]

#

Nähtävästi se ei tykkää Easing-pluginista. Mistäs moinen viha Easingiä kohtaan?

combo [29.04.2012 17:07:20]

#

Macro kirjoitti:

Nähtävästi se ei tykkää Easing-pluginista. Mistäs moinen viha Easingiä kohtaan?

Huomasin saman, täytyy katsoa jos keksisin jonkin syyn. Alkaa meikäläisellä kyllä kohta taidot loppua.. :|

Macro [29.04.2012 17:23:56]

#

Nähtävästi jQueryn dokumentaatiossa käsiteltiin tämäkin asia. slideTogglelle piti antaa toiseksi parametriksi linear.

Boksi aukeaa ja sulkeutuu kumminkin väärässä paikassa. Sen pitäisi lähteä suoraan tuosta linkin alta. Lisäksi se aukeaa väärään paikkaan. Oikea paikka olisi täällä.

combo [29.04.2012 17:36:08]

#

Macro kirjoitti:

Boksi aukeaa ja sulkeutuu kumminkin väärässä paikassa. Sen pitäisi lähteä suoraan tuosta linkin alta. Lisäksi se aukeaa väärään paikkaan. Oikea paikka olisi täällä.

Purkkaviritelmä:

form#login {
position: absolute;
z-index: 1000;
top: 55px;
right: 450px;
}

Macro [29.04.2012 18:11:41]

#

Jees, jotain tollasta virittelin sinne. Formi ei silti aukea kivasti, kun se liukuu samalla sivun yläreunasta oikeaan kohtaansa kun se muuten aukeaa.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta