Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   смена background-image по клику на кноп-впер,назад, смена при нажатии на вперед и наз (https://javascript.ru/forum/dom-window/14092-smena-background-image-po-kliku-na-knop-vper-nazad-smena-pri-nazhatii-na-vpered-i-naz.html)

Russianmaniac 29.12.2010 05:47

смена background-image по клику на кноп-впер,назад, смена при нажатии на вперед и наз
 
Нужна помощь в создании скрипта для смена background-image определенного DIV по клику на кнопки "фон div вперед" и "фон div назад", и по мере возможности так ,чтобы не загружать все картинки,чтобы они постепенно качались , чтобы экономить трафик.

стиль див на котором должно меняться фон -page_centr_23

Скрипт написать помогли, но не парвильно работает (
$(function (){
var images = [
   'img/fon/fon_img40.jpg',
   'img/fon/fon_img41.jpg',
   'img/fon/fon_img42.jpg',
   ],
   $page_centr_23 = $('.page_centr_23'),
   imageIndex = 0;
$('.image_change').click(function(){
   if( $(this).attr('rel') == 'next' && imageIndex  < images.length )
  
   
   {
       $page_centr_23.css('background-image', 'url('+'img/fon/fon_img40.jpg'[++imageIndex ]+')' )
   }else if( $(this).attr('rel') == 'prev' && imageIndex  > 0 ){
       $page_centr_23.css('background-image', 'url('+images[--imageIndex ]+')' )
   }
   return false;
})
})



а сами кнопки делал так -
<a href="#"><img  src="/img/js_view_photo.gif" alt="delete" border="0" class="image_change" rel="next" /></a>

Russianmaniac 29.12.2010 17:53

сделал немного , пмоогите еще
 
помогли доделать , а как теперь сделать атк чтобы изображения фона шли по кругу ? а то щас после последнего фото белый прстой фон


$(function (){
var images = [
  '/img/fon/fon_img40.jpg',
   '/img/fon/fon_img41.jpg',
   '/img/fon/fon_img42.jpg',
   '/img/fon/fon_img23.jpg',
  ],
 $page_centr_23 = $('.page_centr_23'),
  imageIndex = 0;
$('.image_change').click(function(){
  if( $(this).attr('rel') == 'next' && imageIndex  < images.length ) {
     $page_centr_23.css('background-image', 'url('+images[++imageIndex ]+')' )
  }else if( $(this).attr('rel') == 'prev' && imageIndex  > 0 ){
     $page_centr_23.css('background-image', 'url('+images[--imageIndex ]+')' )
  }
  return false;
});
})

Sweet 29.12.2010 19:30

Чтобы по кругу - это как-то так:
if( $(this).attr('rel') == 'next' && imageIndex  < images.length ) {
    if(imageIndex === images.length - 1) imageIndex = 0;
    else imageIndex++;
    $page_centr_23.css('background-image', 'url('+images[imageIndex]+')' )
А чтобы после последнего ничего не лезло, то так:
if( $(this).attr('rel') == 'next' && imageIndex  < images.length - 1 ) {
    $page_centr_23.css('background-image', 'url('+images[++imageIndex ]+')' )

monolithed 29.12.2010 22:15

Цитата:

Сообщение от Sweet
If(imageIndex === images.length - 1) imageIndex = 0;

опечатался :)

Russianmaniac 30.12.2010 13:34

Большое спасибо за помощь , без вас бы не разобрался с этим кодом. на другом форуме помогли вот с этим кодом, думаю его оставлю .

$(function (){
var images = [
  '/img/fon/fon_img40.jpg',
   '/img/fon/fon_img41.jpg',
   '/img/fon/fon_img42.jpg',
   '/img/fon/fon_img23.jpg',
  ],
 $page_centr_23 = $('.page_centr_23'),
 imageIndex = 0;

$('a.image_change').click(function() {

     if ($(this).attr('rel') == 'next')
      {      
	   if (imageIndex  < images.length - 1) 
	 
	   {
        $page_centr_23.css('background-image', 'url('+images[++imageIndex ]+')')
       }else{
        imageIndex = 0;
        $page_centr_23.css('background-image', 'url('+images[imageIndex]+')');
       }
      };
       
     if($(this).attr('rel') == 'prev')
      {
       if (imageIndex  > 0) {
        $page_centr_23.css('background-image', 'url('+images[--imageIndex ]+')')
       }else{
        imageIndex  = images.length - 1 ;
        $page_centr_23.css('background-image', 'url('+images[imageIndex]+')');
      }
       }
       return false;
     });
})


Часовой пояс GMT +3, время: 16:02.