jQuery – egyszerű képváltó

2011-02-04

Egyszerű képváltogató megoldás jQuery-vel. Megint belefutottam a jó öreg IE last-child problémába, úgyhogy erre is mutat megoldást a videó.

A működő kódot ide kattintva tudod megnézni.

Videó

Videó

HTML forráskód


<div id="container">
    <ul id="navigation">
        <li>első</li>
        <li>második</li>
        <li>harmadik</li>
        <li>negyedik</li>
        <li>ötödik</li>
        <li>hatodik</li>
    </ul>
    <div class="clear"></div>
    <div id="main">
        <div><img src="1.jpg"></div>
        <div><img src="2.jpg"></div>
        <div><img src="3.jpg"></div>
        <div><img src="4.jpg"></div>
        <div><img src="5.jpg"></div>
        <div><img src="6.jpg"></div>
    </div>
</div>

CSS forráskód


body {
    background: url('bg_body.png') repeat-x #ddd;
    font-family: tahoma;
    font-size: 11px;
    font-weight: bold;
    text-transform: uppercase;
}
div#container {
    width: 600px;
    margin: 100px auto;
    border: 4px solid #fff;
    background: #fff;
    -webkit-box-shadow: 10px 10px 0px #8d8d8d;
    -moz-box-shadow: 10px 10px 0px #8d8d8d;
    box-shadow: 10px 10px 0px #8d8d8d;
}
div#main {
    margin: 0;
    width: 600px;
    height: 400px;
    overflow: none;
}
div#main div {
    width: 600px;
    height: 400px;
    margin-bottom: -400px;
    display: none;
}
/* megjeleníti az első blokk tartalmát */
div#main div:first-child {
    display: block;
}
ul#navigation {
    margin: 0;
    padding: 0;
    list-style: none;
}
ul#navigation li {
    float: left;
    width: 97px;
    text-align: center;
    padding: 15px 0;
    background: #000;
    color: #fff;
    margin-right: 4px;
    margin-bottom: 4px;
    cursor: pointer;
}
ul#navigation li:last-child {
    margin-right: 0;
    width: 95px;
}
ul#navigation li:hover {
    background: #0a8d20;
}
div.clear { clear: both; }

jQuery forráskód


$(document).ready(function() {

    var nav_last = {
      'width' : '95px',
      'margin-right' : '0',
    }

    $("#navigation li:last-child").css(nav_last);

    $("#navigation li").click(function(){
        var nav = $(this).index()+1;
        $("#main div").css("display","none");
        $("#main div").css("opacity","0");
        $("#main div:nth-child("+(nav)+")").fadeTo('slow', 1);
    });

});