recmach
recmach

Reputation: 65

How to display a specific image on clicking a specific list_item in jquery?

I have designed through an image slider . This slider slides through the images well automatically. But I want a specific image also to be displayed when clicking a specific list item just in the below div( the so called round buttons).

That is when even the slider is displaying the 5th image in the queue if I press upon the 2nd list item 2nd image of that sequence should be displayed and again after this slider should normally continue. Again I click back 1,it should display 1st image and again slider rolls on normally. how to do that ?

Here is my code snippet .

Where am i making it wrong?

<!DOCTYPE html>
<html>
<head>

<title>jQuery UI Dialog: Hide the Close Button/Title Bar</title>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js"></script>

<style type="text/css">

    .mySlider
    {
        //
    }

    .shadow_div
    {
        //
    }

    .mySlider img
    {
        width:800px;
        height:480px;
        display:none;

    }

    .Parent_Slider > a
    {
        text-decoration:none;
        font-weight:bold;
        width:32px;
        height:32px;
        position:absolute;
        top:45%;
        text-indent:-9999px;
        display:block;
         border:1px solid white;
    }

    .Next_Class
    {
        right: 282px;
        background-image: url(Images/rightarrow.jpg);
    }

    .Prev_Class
    {
        left:282px;
        background-image:url(Images/leftarrow.jpg);
    }

    ul.Round_Buttons
    {
        position:relative;
        left:35%;
        top:5px;
        text-decoration:none;
        list-style-type:none;
        text-indent:-9999px
    }

   ul.Round_Buttons li
   {
       float:left;
       background-color:white;
       margin:1px 5px;
       padding:0px 7px;
       border-radius:50%;
       border-width:1px;
       border:1px solid #3610a5;
       cursor:pointer;
       box-shadow:1px -1px 3px 1px #3610a5;
       transition:all 1s ease-in-out;
       -moz-transition:all 1s ease-in-out;
       -webkit-transition:all 1s ease-in-out;

   }


</style>

<script type="text/javascript">

    $(document).ready(function () {
        $("#my_image_slider>#1").show("fade", 1000);
        $("#my_image_slider>#1").delay(3500)
             .hide("slide", { direction: 'left' }, 800);

        var image_count = $("#my_image_slider > img").length; //total number of images

        var count = 2;

        setInterval(function () {
            $(("#my_image_slider #") + count)
                   .show("slide", {direction: 'right'}, 1000);

            $(("#my_image_slider #") + count).delay(3500)
                  .hide("slide", { direction: 'left' }, 800);

            if (count == image_count) {
                count = 1;
            } else {
                count = count + 1;
            }
        }, 5300);

        $(".Round_Buttons li").click(function () {
            var id_temp = this.id.charAt(0);
            $("my_image_slider #id_temp").show("fade", 1000);
        });
    });


</script>
</head>

<body>
<div class="Parent_Slider">
    <div id="my_image_slider" class="mySlider">
        <img id="1" src="Images/bmw.jpg" alt="" title="Audi India"/>
        <img id="2" src="Images/audi.jpg" alt="" title="BMW India" />
        <img id="3" src="Images/aston-martin.jpg" alt="" title="Aston-Martin APAC" />
        <img id="4" src="Images/bugatti.jpg" alt="" title="Buggatti APAC" />
        <img id="5" src="Images/koenigsegg.jpg" alt="" title="Koenigsegg APAC" />
    </div>
    <a href="#" class="Next_Class">Next</a>
    <a href="#" class="Prev_Class">Prev</a>
</div>
    <div class="shadow_div" >
        <ul class="Round_Buttons">
            <li id="1_Round_Buttons"><a href="#">1</a></li>
            <li id="2_Round_Buttons"><a href="#">2</a></li>
            <li id="3_Round_Buttons"><a href="#">3</a></li>
            <li id="4_Round_Buttons"><a href="#">4</a></li>
            <li id="5_Round_Buttons"><a href="#">5</a></li>
        </ul>
    </div>  
</body>
</html>

Upvotes: 0

Views: 507

Answers (2)

php-dev
php-dev

Reputation: 7156

You don't need to manually show the target image on round button click

Just reset your count variable to that value and let the setInterval function show it.

$(".Round_Buttons li").click(function () {
    count = this.id.charAt(0);
});

Upvotes: 1

maj
maj

Reputation: 582

id_temp is a variable. So you wan to concatenate with the selectory

$(".Round_Buttons li").click(function () {
    var id_temp = this.id.charAt(0);
    $("my_image_slider #"+id_temp).show("fade", 1000);
});

Upvotes: 1

Related Questions