Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.12.2017, 19:04
Аспирант
Отправить личное сообщение для Noonf Посмотреть профиль Найти все сообщения от Noonf
 
Регистрация: 26.11.2017
Сообщений: 38

Смена изображений при наведении в отдельных контейнерах
Помогите пожалуйста с такой задачей. Есть контейнер с изображениями и кратким описанием объекта. В этом контейнере 3 изображения, которые меняются при наведении на определенный div. Таких контейнеров около 100 шт.
Смену изображений реализовал, но при наведении на div сменяются изображения во всех контейнерах. Помогите сделать так, чтобы менялось только у того на который наводишь. Эту идею подсмотрел здесь https://www.kufar.by

Фрагмент кода html, js + скрины прилагаю.

<div class="flat_object_0">
<div class="price f14px white">1 400 000 р.</div>
<div class="switch_1"></div>
<div class="switch_2"></div>
<div class="switch_3"></div>
<div class="foto">
<img src="<images/flat/object/object_1.png" class="foto_1" alt="foto_1">
<img src="<images/flat/object/object_2.png" class="foto_2" alt="foto_2">
<img src="<images/flat/object/object_3.png" class="foto_3" alt="foto_3">
</div>	
<div class="place f12px ">
<img src="<images/slider_sale/icon_place.png" class="icon_place">3-комнатная квартира</div>
<div class="location f12px">
<img src="<images/slider_sale/icon_location.png" class="icon_location">
г. Сосновоборск, Куйбышева 24-19</div>
<a href="#" class="botton_object f18px white aligner">Посмотреть</a>
	
</div>
<div class="flat_object_01">
<div class="price f14px white">1 400 000 р.</div>
<div class="switch_1"></div>
<div class="switch_2"></div>
<div class="switch_3"></div>
<div class="foto">
<img src="<images/flat/object/object_1.png" class="foto_1" alt="foto_1">
<img src="<images/flat/object/object_2.png" class="foto_2" alt="foto_2">
<img src="<images/flat/object/object_3.png" class="foto_3" alt="foto_3">
</div>
<div class="place f12px ">
<img src="<images/slider_sale/icon_place.png" class="icon_place">
3-комнатная квартира</div>
<div class="location f12px">
<img src="<images/slider_sale/icon_location.png" class="icon_location">
г. Сосновоборск, Куйбышева 24-19
</div>
<a href="#" class="botton_object f18px white aligner">Посмотреть</a>
</div>


jQuery(document).ready(function(){
  jQuery(".switch_1, .switch_2, .switch_3").hover(
    function() {
      jQuery( this ).addClass('active');
    }, function() {
      jQuery( this ).removeClass('active');
    }
  );
});



jQuery('.switch_1').hover(function(){
    jQuery('.foto_1').addClass('active');
    jQuery('.foto_2, .foto_3').removeClass('active');
});

jQuery('.switch_2').hover(function(){
    jQuery('.foto_2').addClass('active');
    jQuery('.foto_1, .foto_3').removeClass('active');
});

jQuery('.switch_3').hover(function(){
    jQuery('.foto_3').addClass('active');
    jQuery('.foto_1, .foto_2').removeClass('active');
});
Изображения:
Тип файла: jpg Безымянный1.jpg (24.8 Кб, 1 просмотров)
Тип файла: jpg Безымянный.jpg (23.2 Кб, 1 просмотров)
Ответить с цитированием
  #2 (permalink)  
Старый 28.12.2017, 20:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Noonf,
можно из классов цифры удалить?
Ответить с цитированием
  #3 (permalink)  
Старый 28.12.2017, 20:52
Аспирант
Отправить личное сообщение для Noonf Посмотреть профиль Найти все сообщения от Noonf
 
Регистрация: 26.11.2017
Сообщений: 38

Ну можно. Только не очень понял к чему вопрос )
Ответить с цитированием
  #4 (permalink)  
Старый 28.12.2017, 20:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Noonf,
так проще
Ответить с цитированием
  #5 (permalink)  
Старый 28.12.2017, 20:56
Аспирант
Отправить личное сообщение для Noonf Посмотреть профиль Найти все сообщения от Noonf
 
Регистрация: 26.11.2017
Сообщений: 38

У них стили немного отличаются. Вот фрагмент кода

.switch_1 {
	float: left;
	height: 168px;
	width: 89px;
	border-bottom: 5px solid transparent;
	-webkit-transition: all .25s ease;
    -o-transition: all .25s ease;
    transition: all .25s ease;
    cursor: pointer;
    z-index: 100;
    position: absolute;  
}

.switch_2 {
	float: left;
	height: 168px;
	width: 89px;
	margin-left: 89px;
	border-bottom: 5px solid transparent;
	-webkit-transition: all .25s ease;
    -o-transition: all .25s ease;
    transition: all .25s ease;
    cursor: pointer;
    z-index: 100;
    position: absolute;
}


.switch_3  {
	float: left;
	height: 168px;
	width: 89px;
	margin-left: 178px;
	border-bottom: 5px solid transparent;
	-webkit-transition: all .25s ease;
    -o-transition: all .25s ease;
    transition: all .25s ease;
    cursor: pointer;
    z-index: 100;
    position: absolute;
}

.switch_1.active, .switch_2.active, .switch_3.active {
	border-color: #c40000;
}


.foto {
	position:relative;
}

.foto_1 {
	display: block;
}

.foto_2 {
	display: none;
	position:absolute;
    top: 0%;
    left: 0%;
    width: 267px;
    height: 168px;
}

.foto_3 {
	display: none;
	position:absolute;
    top: 0%;
    left: 0%;
    width: 267px;
    height: 168px;
}

.foto_1.active, .foto_2.active, .foto_3.active {
	display: block;
}
Ответить с цитированием
  #6 (permalink)  
Старый 28.12.2017, 21:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Noonf,

добавьте новые классы если и старые нужны
$(function() {
  $(".flat_object").each(function(indx, el) {
    var div = $(".switch"), foto = $(".foto img");
    $(el).on("mouseenter mouseleave", ".switch", function(event) {
      var indx = div.removeClass("active").index(this);
      foto.removeClass("active").eq(indx).addClass("active");
      $(this).toggleClass("active", event.type == "mouseenter");
    });
  });
});

Последний раз редактировалось рони, 28.12.2017 в 21:17.
Ответить с цитированием
  #7 (permalink)  
Старый 28.12.2017, 21:57
Аспирант
Отправить личное сообщение для Noonf Посмотреть профиль Найти все сообщения от Noonf
 
Регистрация: 26.11.2017
Сообщений: 38

Спасибо Вам огромное!!!! Очень помогли, сам бы не справился!
Ответить с цитированием
  #8 (permalink)  
Старый 28.12.2017, 22:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Noonf,
так правильнее 3 строка
$(function() {
  $(".flat_object").each(function(indx, el) {
    var div = $(".switch", el), foto = $(".foto img",el);
    $(el).on("mouseenter mouseleave", ".switch", function(event) {
      var indx = div.removeClass("active").index(this);
      foto.removeClass("active").eq(indx).addClass("active");
      $(this).toggleClass("active", event.type == "mouseenter");
    });
  });
});
Ответить с цитированием
  #9 (permalink)  
Старый 28.12.2017, 22:13
Аспирант
Отправить личное сообщение для Noonf Посмотреть профиль Найти все сообщения от Noonf
 
Регистрация: 26.11.2017
Сообщений: 38

Еще раз спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена класса одного блока при наведении курсора на другой serggrodno jQuery 2 20.01.2016 12:05
Случайная смена картинок при повторном наведении Sylar V Элементы интерфейса 13 04.12.2015 14:21
смена div блока при наведении курсора мыши Денис2201 Общие вопросы Javascript 3 07.10.2013 13:43
Появление ссылки при наведении мыши nikolaymac jQuery 1 05.09.2013 15:32
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06