Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Смена свойств блока при наведении мыши (https://javascript.ru/forum/dom-window/70964-smena-svojjstv-bloka-pri-navedenii-myshi.html)

Chmil 16.10.2017 03:05

Смена свойств блока при наведении мыши
 
Здравствуйте уважаемые, в javascript не силен, но возникла задача, где без него никак. Итак суть задачи: есть 3 блока расположенных в ряд с кое какой информацией, при наведении мыши на любой из блоков, ниже на всю область (во все 3 столбца) должно отображаться детальное описание того блока (изначально все 3 описания скрыты). Средствами css реализовать это очень просто (псевдо-класс hover), но проблема в том, что описание блоков не должно пропадать тогда, как отводится курсор мыши от блока, разве что его направить на другой блок с описанием, тогда вместо предыдущего должно появится новое описание. Вот как я пробовал решить задачу, но увы не работает, прошу помощи знающих, подскажите пожалуйста где я ошибаюсь, jQuery подключен, заранее благодарен… вот сам код:
jQuery('.kv').onmouseover(function() {
jQuery('.kv_text').css( 'visibility', 'visible' );
jQuery('.kv_text').css( 'opacity', '1' );
jQuery('.dom_text').css( 'visibility', 'hidden' );
jQuery('.dom_text').css( 'opacity', '0' );
jQuery('.office_text').css( 'visibility', 'hidden' );
jQuery('.office_text').css( 'opacity', '0' );
});

jQuery('.dom').onmouseover(function() {
jQuery('.dom_text').css( 'visibility', 'visible' );
jQuery('.dom_text').css( 'opacity', '1' );
jQuery('.kv_text').css( 'visibility', 'hidden' );
jQuery('.kv_text').css( 'opacity', '0' );
jQuery('.office_text').css( 'visibility', 'hidden' );
jQuery('.office_text').css( 'opacity', '0' );
});

jQuery('.office').onmouseover(function() {
jQuery('.office_text').css( 'visibility', 'visible' );
jQuery('.office_text').css( 'opacity', '1' );
jQuery('.kv_text').css( 'visibility', 'hidden' );
jQuery('.kv_text').css( 'opacity', '0' );
jQuery('.dom_text').css( 'visibility', 'hidden' );
jQuery('.dom_text').css( 'opacity', '0' );
});

Chmil 16.10.2017 03:13

Еще так пробовал:
jQuery('.kv').onmouseover(function() {
jQuery('.kv > .kv_text').css( 'visibility', 'visible' );
jQuery('.kv > .kv_text').css( 'opacity', '1' );
jQuery('.dom > .dom_text').css( 'visibility', 'hidden' );
jQuery('.dom > .dom_text').css( 'opacity', '0' );
jQuery('.office > .office_text').css( 'visibility', 'hidden' );
jQuery('.office > .office_text').css( 'opacity', '0' );
});

jQuery('.dom').onmouseover(function() {
jQuery('.dom > .dom_text').css( 'visibility', 'visible' );
jQuery('.dom > .dom_text').css( 'opacity', '1' );
jQuery('.kv_text').css( 'visibility', 'hidden' );
jQuery('.kv_text').css( 'opacity', '0' );
jQuery('.office_text').css( 'visibility', 'hidden' );
jQuery('.office_text').css( 'opacity', '0' );
});

jQuery('.office').onmouseover(function() {
jQuery('.office > .office_text').css( 'visibility', 'visible' );
jQuery('.office > .office_text').css( 'opacity', '1' );
jQuery('.kv > .kv_text').css( 'visibility', 'hidden' );
jQuery('.kv > .kv_text').css( 'opacity', '0' );
jQuery('.dom > .dom_text').css( 'visibility', 'hidden' );
jQuery('.dom > .dom_text').css( 'opacity', '0' );
});

рони 16.10.2017 03:15

Chmil,
html и css можно?

Chmil 16.10.2017 10:58

конечно можно, я думал на js нужно делать

рони 16.10.2017 11:33

Цитата:

Сообщение от Chmil
конечно можно,

:) покажите код ваших блоков, чтобы понять что вы хотите сделать!!!

Chmil 16.10.2017 11:55

Извиняюсь ;))) :
<div style="display: none;" id="content_block_three">
<div class="block_ico">
<div class="kv">
<span class="kv_name"><span class="name_ramka">Квартира</span></span>
<div  class="kv_text">
Отличный тариф для домашнего<br /> интернета с высокой скоростью,<br /> 
Smart-TV и номером телефона!<br />
<span>Подключись прямо сейчас!</span>
</div>
</div>
<div class="dom">
<span class="dom_name"><span class="name_ramka">Дом</span></span>
<div class="dom_text">
<b>Подключение частного дома к сети</b><br /><b> Интернет с нами - проще простого!</b><br />
Быстрый доступ к сети, номер<br /> телефона, возможность интеграции<br /> систем видеонаблюдения!<br /> <span class="green">Подключись прямо сейчас!</span>
</div>
</div>
<div class="office">
<span class="office_name"><span class="name_ramka">Офис</span></span>
<div class="office_text">
<b>Только у нас по-настоящему</b><br />  <b>индивидуальный подход.</b><br /> 
У нас найдется отличное предложение для<br />  любого бизнеса. С нами - выгодно!<br /> 
<span class="red">Подключитесь прямо сейчас!</span> 
</div>
</div>
</div>
</div>


.kv { 
    background: url(../img/kv.png) no-repeat;
    height: 189px;
    width: 128px;
    background-size: 100%;
    float: left;
    margin-right: 100px;
    position: relative;
	cursor: pointer;
}
.kv_name { 
    background: #e17a1c;
    width: 120px;
    height: 120px;
    display: block;
    border-radius: 60px;
    position: absolute;
    top: 97px;
    left: 72px;
    text-align: center;
    color: #fff;
	
}
.dom { 
    background: url(../img/dom.png) no-repeat;
    height: 189px;
    width: 128px;
    background-size: 100%;
    float: left;
    margin-right: 90px;
    position: relative;
	cursor: pointer;
}
.dom_name { 
background: #86c127;
    width: 120px;
    height: 120px;
    display: block;
    border-radius: 60px;
    position: absolute;
    top: 113px;
    left: 4px;
    text-align: center;
    color: #fff;
}
.office { 
background: url(../img/office.png) no-repeat;
    height: 189px;
    width: 128px;
    background-size: 100%;
    float: left;
    position: relative;
	cursor: pointer;
}
.office_name { 
background: #da251c;
    width: 120px;
    height: 120px;
    display: block;
    border-radius: 60px;
    position: absolute;
    top: 99px;
    left: -50px;
    text-align: center;
    color: #fff;
}
.office_text { 
 
    position: absolute;
    bottom: -313px;
    left: -418px;
    background: url(../img/office_text_ramka.png) no-repeat;
    background-size: 100%;
    width: 370px;
    height: 196px;
    padding-top: 6px;
    background-position: bottom;
    padding-top: 86px;
    padding-left: 94px;
    font-family: 'a_AvanteInt';
    font-size: 17px;
    font-weight: 400;
    color: #686868;
    padding-right: 16px;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.5s linear;
	
}
.office_text > b { 
    font-size: 23px;
}
.office_text > span { 
    color: #da251c;
    font-weight: bold;
    font-size: 23px;
}

.dom_text {
    position: absolute;
    bottom: -313px;
    left: -177px;
    background: url(../img/dom_ramka.png) no-repeat;
    background-size: 100%;
    width: 401px;
    height: 196px;
    padding-top: 6px;
    background-position: bottom;
    padding-top: 86px;
    padding-left: 72px;
    font-family: 'a_AvanteInt';
    font-size: 17px;
    font-weight: 400;
    color: #686868;
    padding-right: 16px;
    visibility: hidden;
	opacity: 0;
	transition: visibility 0s, opacity 0.5s linear;
}



.dom_text > b { 
    font-size: 20px;
}
.dom_text > span { 
    color: #86c127;
    font-weight: bold;
    font-size: 23px;
}


.kv_text { 

    position: absolute;
    bottom: -296px;
    left: 148px;
    /* right: -100px; */
    background: url(../img/kv_ramka.png) no-repeat;
    background-size: 100%;
    width: 329px;
    height: 158px;
    padding-top: 6px;
    background-position: bottom;
    padding-top: 95px;
    padding-left: 72px;
    font-family: 'a_AvanteInt';
    font-size: 17px;
    font-weight: 400;
    color: #686868;
    padding-right: 16px;

     visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.5s linear;
}
.kv_text > b { 
    font-size: 20px;
}
.kv_text > span { 
    color: #e17a1c;
    font-weight: bold;
    font-size: 23px;
}

рони 16.10.2017 12:27

Chmil,
css класс open строка 173 + js
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .kv {
    background: url(http://on-lite.org/img/kv.png) no-repeat;
    height: 189px;
    width: 128px;
    background-size: 100%;
    float: left;
    margin-right: 100px;
    position: relative;
  cursor: pointer;
}
.kv_name {
    background: #e17a1c;
    width: 120px;
    height: 120px;
    display: block;
    border-radius: 60px;
    position: absolute;
    top: 97px;
    left: 72px;
    text-align: center;
    color: #fff;

}
.dom {
    background: url(http://on-lite.org/img/dom.png) no-repeat;
    height: 189px;
    width: 128px;
    background-size: 100%;
    float: left;
    margin-right: 90px;
    position: relative;
  cursor: pointer;
}
.dom_name {
background: #86c127;
    width: 120px;
    height: 120px;
    display: block;
    border-radius: 60px;
    position: absolute;
    top: 113px;
    left: 4px;
    text-align: center;
    color: #fff;
}
.office {
background: url(http://on-lite.org/img/office.png) no-repeat;
    height: 189px;
    width: 128px;
    background-size: 100%;
    float: left;
    position: relative;
  cursor: pointer;
}
.office_name {
background: #da251c;
    width: 120px;
    height: 120px;
    display: block;
    border-radius: 60px;
    position: absolute;
    top: 99px;
    left: -50px;
    text-align: center;
    color: #fff;
}
.office_text {

    position: absolute;
    bottom: -313px;
    left: -418px;
    background: url(http://on-lite.org/img/office_text_ramka.png) no-repeat;
    background-size: 100%;
    width: 370px;
    height: 196px;
    padding-top: 6px;
    background-position: bottom;
    padding-top: 86px;
    padding-left: 94px;
    font-family: 'a_AvanteInt';
    font-size: 17px;
    font-weight: 400;
    color: #686868;
    padding-right: 16px;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.5s linear;

}
.office_text > b {
    font-size: 23px;
}
.office_text > span {
    color: #da251c;
    font-weight: bold;
    font-size: 23px;
}

.dom_text {
    position: absolute;
    bottom: -313px;
    left: -177px;
    background: url(http://on-lite.org/img/dom_ramka.png) no-repeat;
    background-size: 100%;
    width: 401px;
    height: 196px;
    padding-top: 6px;
    background-position: bottom;
    padding-top: 86px;
    padding-left: 72px;
    font-family: 'a_AvanteInt';
    font-size: 17px;
    font-weight: 400;
    color: #686868;
    padding-right: 16px;
    visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.5s linear;
}



.dom_text > b {
    font-size: 20px;
}
.dom_text > span {
    color: #86c127;
    font-weight: bold;
    font-size: 23px;
}


.kv_text {

    position: absolute;
    bottom: -296px;
    left: 148px;
    /* right: -100px; */
    background: url(http://on-lite.org/img/kv_ramka.png) no-repeat;
    background-size: 100%;
    width: 329px;
    height: 158px;
    padding-top: 6px;
    background-position: bottom;
    padding-top: 95px;
    padding-left: 72px;
    font-family: 'a_AvanteInt';
    font-size: 17px;
    font-weight: 400;
    color: #686868;
    padding-right: 16px;

     visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.5s linear;
}
.kv_text > b {
    font-size: 20px;
}
.kv_text > span {
    color: #e17a1c;
    font-weight: bold;
    font-size: 23px;
}

.open{
  visibility: visible;
  opacity: 1
}

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
var divs = $(".block_ico>div");
divs.mouseenter(function() {
$(">div",divs ).not($(">div", this).addClass("open")).removeClass("open")
})
});
  </script>
</head>

<body>
<div id="content_block_three">
<div class="block_ico">
<div class="kv">
<span class="kv_name"><span class="name_ramka">Квартира</span></span>
<div  class="kv_text">
Отличный тариф для домашнего<br /> интернета с высокой скоростью,<br />
Smart-TV и номером телефона!<br />
<span>Подключись прямо сейчас!</span>
</div>
</div>
<div class="dom">
<span class="dom_name"><span class="name_ramka">Дом</span></span>
<div class="dom_text">
<b>Подключение частного дома к сети</b><br /><b> Интернет с нами - проще простого!</b><br />
Быстрый доступ к сети, номер<br /> телефона, возможность интеграции<br /> систем видеонаблюдения!<br /> <span class="green">Подключись прямо сейчас!</span>
</div>
</div>
<div class="office">
<span class="office_name"><span class="name_ramka">Офис</span></span>
<div class="office_text">
<b>Только у нас по-настоящему</b><br />  <b>индивидуальный подход.</b><br />
У нас найдется отличное предложение для<br />  любого бизнеса. С нами - выгодно!<br />
<span class="red">Подключитесь прямо сейчас!</span>
</div>
</div>
</div>
</div>

</body>
</html>

Chmil 16.10.2017 14:36

Заработало, огромное спасибо Рони - второй раз обращаюсь на форум за помощью и второй раз помогает решить вопрос


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