Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как сделать эффект вкладок (https://javascript.ru/forum/misc/34444-kak-sdelat-ehffekt-vkladok.html)

cOAPerator 05.01.2013 12:36

Вот, попробую в коментариях написать:
<script type="text/javascript">
$(document).ready(function() {
$("#MenuTxT div.submenutext").hide();
$("#menu span").click(function() {
    $("#menu span").removeClass("tabactive");
    $(this).addClass("tabactive");
    $("#MenuTxT div.submenutext").hide();
    var activeDiv = $(this).attr("alt");
    $(activeDiv).fadeIn(); // открывает выбранный блок

// эта часть (1) кода, должна скрывать текущий открытый блок, даже если мы не наводили мышь на него
тут должен быть код...
//конец части (1)

// эта часть (2) кода, скрывает открытый выше блок, только после того как на него была наведена мышь и убрана
function doid_1(){
	$(activeDiv).slideUp(1000);
}
$(activeDiv).mouseleave(function(){
	mytime1 = setTimeout(doid_1, 1000);
});
$(activeDiv).mouseenter(function(){
	clearTimeout(mytime1);
});
// конец части (2)
    return false; });
});
</script>

Deff 05.01.2013 12:38

<script src="http://code.jquery.com/jquery-latest.js"></script>

<style>	
#menu {
margin-top: -5px;
width: 180px;
height: 60px;
background-repeat : no-repeat;}

#menu span {
text-align:left;
display:block;
color:#000000;
margin: 7px 0;
padding: 11px;
}
#submenu, #menu span {
    border-radius:5px;
    -webkit-border-radius:5px;
    -khtml-border-radius:5px;
    -moz-border-radius:5px;
    -o-border-radius:5px;
background:#efeff0;
}

#menu .tabactive {
color: #000000;
    background:#777777;
}

#submenu {
padding: 3px;
height: 180px;
text-align: center;
font-size: 12px;
width: 540px;
}

.submenutext {
display: none; 
height: 40px;
}
</style>

<center><table id="tbl" style="width: 800px">
 <tbody>
  <tr>
   <td valign=top>
    <div id="menu"> <b>
<span alt="#sm1" style="cursor: pointer;">Добро пожаловать</span>
<span alt="#sm2" style="cursor: pointer;">Новости форума</span>
<span alt="#sm3" style="cursor: pointer;">Администрация</span>
<span alt="#sm4" style="cursor: pointer;">Баннеры партнеров</span>
           </b>
    </div>
   </td>
   <td id="MenuTxT"  align="center" valign="top">
    <div id="submenu" align="center"> 
     <div id="sm1" class="submenutext" style="display:block;">
<br/><br/>
текст добро пожаловать
</div>
     <div id="sm2" class="submenutext"><br /><br />
текст новости форума
</div>
     <div id="sm3" class="submenutext"><br /><br />
текст Администрация
</div>
     <div id="sm4" class="submenutext"><br /><br />
текст баннеры партнеров
</div>

</div>
   </td>
</tr>
 </tbody>
</table></center>





<script type="text/javascript">
$(document).ready(function() {
$("#MenuTxT div.submenutext").hide();


$("#menu span").click(function() {
    $("#menu span").removeClass("tabactive");
    $(this).addClass("tabactive");
    $("#MenuTxT div.submenutext").hide();
    var activeDiv = $(this).attr("alt");
    $(activeDiv).fadeIn();
    StTimer = setTimeout(function() {doid_1_HIDE()}, 2000)
    return false; });
});
setTimeout(function() {$("#menu span:first").click();}, 300); //Это автозапуск первого блока

function doid_1_SHOW(){
          activeDiv=$($("#menu span.tabactive").attr("alt"));
          activeDiv.stop().fadeIn(1000);
}
function doid_1_HIDE(){
          activeDiv=$($("#menu span.tabactive").attr("alt"));
          activeDiv.stop().fadeOut(1000);

}

$("#submenu").mouseenter(function(){
              if ($($("#menu span.tabactive").attr("alt")).css('display')=='block') {
              clearTimeout(StTimer);
              $(this).stop(true,true);
              doid_1_SHOW();
              }
}).mouseleave(function(){
           doid_1_HIDE();
});

</script>

cOAPerator 05.01.2013 12:43

Deff, вот я поражаюсь, как у Вас на меня терпения хватает)))
ваш вариант выше классный, но он при наведении срабатывает и на кнопки, ето немножко не то.
я вон в посте выше в коде коментарии проставил, может так понятнее будет...

пс: я вам всю карму истыкаю плюсиками)))

Deff 05.01.2013 12:48

Цитата:

Сообщение от cOAPerator
но он при наведении срабатывает и на кнопки,

Поправил

cOAPerator 05.01.2013 12:57

блин, опять не то( ну как объяснить то(((
как сделать чтобы вы тоже мою демонстрацию кода видели? ну вот как вы мне показываете...

Deff 05.01.2013 12:59

cOAPerator,
Объяснить все нюансы
к примеру - ушли с поля с текстом - текст скрылся - нажали на новую кнопку - текст все так же скрыт ?
Карочь описать все варианты событий

cOAPerator 05.01.2013 13:02

Цитата:

Сообщение от Deff (Сообщение 225379)
Карочь описать все варианты событий

ща попытаюсь еще раз.. как сделать демонстрацию кода?

Deff 05.01.2013 13:05

Так:
[HTML run][/HTML]

cOAPerator 05.01.2013 13:14

Для исключения непоняток определим: есть кнопка "добро пожаловать" и блок "добро пожаловать"

нажимаем на кнопку "добро пожаловать", появляется соответствующий ей блок "добро пожаловать", при этом мышь у нас пока еще находится над кнопкой.. если ниче не делаем, блок "добро пожаловать" скрывается через 2 секунды.

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

если навели мышой на открытый блок "добро пожаловать", но ниче не делали, и потом убрали мышь с блока, то он скрывается так-же через 2 секунды.

Deff 05.01.2013 13:18

cOAPerator,
Поправил пост #12


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