Baio84
26-03-2013, 22:32
Sto cercando di crearmi la mia gallery animata. So che ce ne sono già di compilate con jQuery, ma siccome mi sono appena approcciato a questo linguaggio, voglio prendere un po' di dimestichezza.
Ho abbozzato una gallery. In pratica sotto l'immagine ingrandita ci sono tutte le immagini più piccole che, se ci si passa su il mouse, si ingrandiscono un po'. Se cliccata, apre l'immagine. Il mio è più un problema CSS. Quando passo il mouse sull'immagine piccola, voglio che si ingrandisca e che l'immagine così ingrandita salga sopra a quelle vicine (quindi utilizzo z-index). Il problema è che quando si ingrandisce, l'immagine di destra si sposta verso destra e non rimane ferma.
HTML
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="prove.css" media="all" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(
$("#scorrimento img").click(function() {
$("#scorrimento img").css("width", "50px");
$(this).css("width", "100px");
var immag = $(this).attr("src");
$("#slide img:first").attr("src", "bis"+immag);
});
$("#scorrimento img").mouseenter(function() {
$(this).stop();
$(this).css({"position":"relative", "z-index":"1"});
$(this).animate({width:'100px', marginTop:'0', right:'25px'}, 500);
});
$("#scorrimento img").mouseleave(function() {
$(this).stop()
$(this).animate({width:'50px', marginTop:'19px', right:''}, 500);
$(this).css({"z-index":"", "position":""});
});
});
</script>
</head>
<body>
<div id="contenitore">
<div id="slide">
<img src="IMMAGINE1GRANDE.jpg">
<br /><br />
<
<div id="scorrimento">
<img src="IMMAGINE1PICCOLA.jpg">
<img src="IMMAGINE2PICCOLA.jpg">
<img src="IMMAGINE3PICCOLA.jpg">
<img src="IMMAGINE4PICCOLA.jpg">
</div>
>
<br /><br />
</div>
</div><!--CONTENITORE-->
</body>
</html>
CSS
/* RESET */
div {
margin: 0;
padding: 0;
}
/* GENERALE */
div#contenitore {
width: 1000px;
height: 500px;
margin: 0 auto;
}
/* SLIDE */
div#slide {
width: 800px;
height: 500px;
background: #888EEE;
margin: 0 auto;
text-align: center;
}
div#slide img {
width: 500px;
}
div#scorrimento {
height: 75px;
padding-left: 220px;
padding-right: 220px;
display: inline-block;
background-color: #333;
}
div#scorrimento img {
width: 50px;
margin-top: 19px;
margin-right: 1px;
float: left;
}
Ho abbozzato una gallery. In pratica sotto l'immagine ingrandita ci sono tutte le immagini più piccole che, se ci si passa su il mouse, si ingrandiscono un po'. Se cliccata, apre l'immagine. Il mio è più un problema CSS. Quando passo il mouse sull'immagine piccola, voglio che si ingrandisca e che l'immagine così ingrandita salga sopra a quelle vicine (quindi utilizzo z-index). Il problema è che quando si ingrandisce, l'immagine di destra si sposta verso destra e non rimane ferma.
HTML
<!DOCTYPE html>
<html>
<head>
<link type="text/css" rel="stylesheet" href="prove.css" media="all" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="jquery-1.9.1.js"></script>
<script type="text/javascript">
$(document).ready(
$("#scorrimento img").click(function() {
$("#scorrimento img").css("width", "50px");
$(this).css("width", "100px");
var immag = $(this).attr("src");
$("#slide img:first").attr("src", "bis"+immag);
});
$("#scorrimento img").mouseenter(function() {
$(this).stop();
$(this).css({"position":"relative", "z-index":"1"});
$(this).animate({width:'100px', marginTop:'0', right:'25px'}, 500);
});
$("#scorrimento img").mouseleave(function() {
$(this).stop()
$(this).animate({width:'50px', marginTop:'19px', right:''}, 500);
$(this).css({"z-index":"", "position":""});
});
});
</script>
</head>
<body>
<div id="contenitore">
<div id="slide">
<img src="IMMAGINE1GRANDE.jpg">
<br /><br />
<
<div id="scorrimento">
<img src="IMMAGINE1PICCOLA.jpg">
<img src="IMMAGINE2PICCOLA.jpg">
<img src="IMMAGINE3PICCOLA.jpg">
<img src="IMMAGINE4PICCOLA.jpg">
</div>
>
<br /><br />
</div>
</div><!--CONTENITORE-->
</body>
</html>
CSS
/* RESET */
div {
margin: 0;
padding: 0;
}
/* GENERALE */
div#contenitore {
width: 1000px;
height: 500px;
margin: 0 auto;
}
/* SLIDE */
div#slide {
width: 800px;
height: 500px;
background: #888EEE;
margin: 0 auto;
text-align: center;
}
div#slide img {
width: 500px;
}
div#scorrimento {
height: 75px;
padding-left: 220px;
padding-right: 220px;
display: inline-block;
background-color: #333;
}
div#scorrimento img {
width: 50px;
margin-top: 19px;
margin-right: 1px;
float: left;
}