Задать вопрос
@tarthur

Событие над элементом, за исключением определенного блока?

есть такая старничка
9666bedfccd64ed09d4a7e9084a69494.png

1 - это общий блок в котором находятся контент слева 2 и блок 3 - у которого родитель блок 1
как при наведении на область 2 не затрагивать блок 3.
структура Html такая:
<блок 1>
     текст(2)
     <блок 3>
</блок 1>


вот как выглядит текст в области 2:
756ad17c12f34762abf43db535df4725.png

переверстывать нельзя, там уже все под адаптив подкручено.

разметку менять нельзя, там адаптивно уже сверстано, нужно что-то думаю думать через jquery
  • Вопрос задан
  • 287 просмотров
Подписаться 1 Оценить 3 комментария
Решения вопроса 1
@tarthur Автор вопроса
Все как я и ожидал просто. Вот мое решение:

;$(document).ready(function(){

    $(".section-2").mouseover(function( event ) {
        $(".section-2").addClass('hover-link');
    });

    $(".section-2").mouseout(function( event ) {
        $(".section-2").removeClass('hover-link');
    });

    $( "#section-2__right" ).mouseover(function( event ) {
        $(".section-2").addClass('hover-link-off');
    });

    $( "#section-2__right" ).mouseout(function( event ) {
        $(".section-2").removeClass('hover-link-off');
    });
    
});

а теперь создаем такие классы(sass код):

.section-left-link {
	/* Here first styles */

	&:before {
		/* Here first styles */
	}
}

.section-2.hover-link.hover-link {
	.section-left-link {
		/* Here- HOVER  styles */

		&:before {
			/* Here- HOVER  styles */
		}
	}
}

.section-2.hover-link.hover-link-off {
	.section-left-link {
		/* Here- first  styles */

		&:before {
			/* Here- first  styles  */
		}
	}
}

И так как секциций подобных на сайте у меня 3, была создана универсальная функция:

function getHoverLink(parentSelector, delHoverElem) { // parentSelector - элемент родитель. delHoverElem - удалить с этого потомка parentSelector ховер
    $(parentSelector).mouseover(function( event ) {
        $(parentSelector).addClass('hover-link');
    });

    $(parentSelector).mouseout(function( event ) {
        $(parentSelector).removeClass('hover-link');
    });

    $(delHoverElem).mouseover(function( event ) {
        $(parentSelector).addClass('hover-link-off');
    });

    $(parentSelector).mouseout(function( event ) {
        $(parentSelector).removeClass('hover-link-off');
    });
}

getHoverLink(".section-2", "#section-2__right");
getHoverLink(".section-3", "#section-3__right");
getHoverLink(".section-4", "#section-4__right");

Если кому надо пользуйтесь). Всем спасибо!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@kodwi
https://moikrug.ru/kodwi
Обернуть блок 2, т.е. текст, в свой div, дать ему id и оперировать только этим элементом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы