Jump to content
  • 0

Помогите вывести случайный слайд


GenyOK
 Share

Question

В JS не силен поэтому пожалуйста помогите реализовать случайный слайд при загрузке страницы т.е всегда грузится с 1-го слайда, второй, трейтий и т.д, а хочется чтоб всегда грузился случайный. Спасибо.

HTML код


<ul class="slideshow">
<li class="show"><a href="#"><img src="img/slider/s1.jpg" border="0" alt="Заголовок" title="Описание" /></a></li>
<li><a href="#"><img src="img/slider/s2.jpg" alt="Заголовок" title="Описание"/></a></li>
</ul>

Код JS

$(document).ready(function() {        

//Execute the slideShow, set 4 seconds for each images
slideShow(20000);

});

function slideShow(speed) {


//append a LI item to the UL list for displaying caption
$('ul.slideshow').append('<li id="slideshow-caption" class="caption"><div class="slideshow-caption-container"><h3></h3><p></p></div></li>');

//Set the opacity of all images to 0
$('ul.slideshow li').css({opacity: 0.0});

//Get the first image and display it (set it to full opacity)
$('ul.slideshow li:first').css({opacity: 1.0}).addClass('show');

//Get the caption of the first image from REL attribute and display it
$('#slideshow-caption h3').html($('ul.slideshow li.show').find('img').attr('title'));
$('#slideshow-caption p').html($('ul.slideshow li.show').find('img').attr('alt'));

//Display the caption
$('#slideshow-caption').css({opacity: 0.8, bottom:0});

//Call the gallery function to run the slideshow
var timer = setInterval('gallery()',speed);

//pause the slideshow on mouse over
$('ul.slideshow').hover(
function () {
clearInterval(timer);
},
function () {
timer = setInterval('gallery()',speed);
}
);

}

function gallery() {


//if no IMGs have the show class, grab the first image
var current = ($('ul.slideshow li.show')? $('ul.slideshow li.show') : $('#ul.slideshow li:first'));

//trying to avoid speed issue
if(current.queue('fx').length == 0) {

//Get next image, if it reached the end of the slideshow, rotate it back to the first image
var next = ((current.next().length) ? ((current.next().attr('id') == 'slideshow-caption')? $('ul.slideshow li:first') :current.next()) : $('ul.slideshow li:first'));

//Get next image caption
var title = next.find('img').attr('title');
var desc = next.find('img').attr('alt');

//Set the fade in effect for the next image, show class has higher z-index
next.css({opacity: 0.0}).addClass('show').animate({opacity: 1.0}, 2000);

//Hide the caption first, and then set and display the caption
$('#slideshow-caption').slideToggle(300, function () {
$('#slideshow-caption h3').html(title);
$('#slideshow-caption p').html(desc);
$('#slideshow-caption').slideToggle(500);
});

//Hide the current image
current.animate({opacity: 0.0}, 2000).removeClass('show');

}

}

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy