Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.01.2013, 01:46
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

как сделать эффект вкладок
есть 3 кнопки и соответствуюшие им блоки:
кнопка - блок
кнопка - блок
кнопка - блок
как сделать чтобы при нажатии на первую кнопку открывался 1 блок, а при нажании на любую другую, предыдущий блок скрывался, а новый соответствующий ему открывался?
Ответить с цитированием
  #2 (permalink)  
Старый 05.01.2013, 02:13
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

На jQuery

<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();

$("#MenuTxT div.submenutext:first").show();
$("#menu span").click(function() {
    $("#menu span").removeClass("tabactive");
    $(this).addClass("tabactive");
    $("#MenuTxT div.submenutext").hide();
    var activeDiv = $(this).attr("alt");
    $(activeDiv).fadeIn();
    return false; });
});
</script>
span alt=

Последний раз редактировалось Deff, 05.01.2013 в 12:05.
Ответить с цитированием
  #3 (permalink)  
Старый 05.01.2013, 02:18
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

Deff, спасибо! немного не то, но принцип понятен. у меня просто изначально все блоки скрыты.
они появляются при нажатии на кнопку. и исчезают через х-секунд если мышь не наведена на блок..
надо теперь как то совместить с этим кодом

Последний раз редактировалось cOAPerator, 05.01.2013 в 02:20.
Ответить с цитированием
  #4 (permalink)  
Старый 05.01.2013, 02:23
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

cOAPerator,
эээ Открыта первая вкладка
При клике кнопки у всех класс tabactive удаляется и они скрываются, класс tabactive дописывается к активной вкладке,
Ссылка на id открываемого блока в теге alt - данной кнопки

Последний раз редактировалось Deff, 05.01.2013 в 02:27.
Ответить с цитированием
  #5 (permalink)  
Старый 05.01.2013, 02:31
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

Deff, понял, ща буду пробовать.. спасибо!
Ответить с цитированием
  #6 (permalink)  
Старый 05.01.2013, 06:11
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

Deff, такс, убрал кусочек кода, и теперь при первом появлении все вкладки скрыты.
добавил вот такой код, и условие если наводил на блок, но ниче не делал, и убрал мышь с блока, то он автоматом скрывается
function doid_1(){
	$(activeDiv).slideUp(1000);
}
$(activeDiv).mouseleave(function(){
	mytime1 = setTimeout(doid_1, 1000);
});
$(activeDiv).mouseenter(function(){
	clearTimeout(mytime1);
});

А вот если не наводил мышой на активный блок, то он тоже должен скрыться
как таке сюда внедрить, ума не приложу... (мозг кипит уже)

Последний раз редактировалось cOAPerator, 05.01.2013 в 06:49.
Ответить с цитированием
  #7 (permalink)  
Старый 05.01.2013, 11:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от cOAPerator
добавил вот такой код, и условие если наводил на блок, но ниче не делал, и убрал мышь с блока, то он автоматом скрывается
Странно - если блок скрыт - на что там навести можно ?,
Можно пробовать наводить на кнопки
Ответить с цитированием
  #8 (permalink)  
Старый 05.01.2013, 11:20
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

Сообщение от Deff Посмотреть сообщение
Странно - если блок скрыт - на что там навести можно ?,
Можно пробовать наводить на кнопки
не, вы не поняли.. блок же рядом с кнопкой, поэтому он не скрывается если над ним не провести мышкой, а если провести то скрывается..
попробую объяснить алгоритм действий:
у нас кнопки слева, блоки справа. загрузили страницу 1 раз - блоки скрыты, далее
нажимаем на первую кнопку, появляется соответствующий ей блок,
при этом мышь у нас пока еще находится над кнопкой..
так вот теперь:
если навели мышой на открытый блок, но ниче не делали, и потом убрали мышь с блока, то он скрывается так-же через X секунд.(этот кусок кода я дописал сам, он выше в моем посте.)
но если не наводить на блок открытый, он также должен скрыться сам через X секунд. (этого куска кода как раз и нету сейчас, и что дописывать не могу допереть)

полный код сейчас такой
<script type="text/javascript">
$(document).ready(function() {
$("#MenuTxT div.submenutext").hide();

//$("#MenuTxT div.submenutext:first").show();
$("#menu span").click(function() {
    $("#menu span").removeClass("tabactive");
    $(this).addClass("tabactive");
    $("#MenuTxT div.submenutext").hide();
    var activeDiv = $(this).attr("alt");
    $(activeDiv).fadeIn();
function doid_1(){
	$(activeDiv).slideUp(1000);
}
$(activeDiv).mouseleave(function(){
	mytime1 = setTimeout(doid_1, 1000);
});
$(activeDiv).mouseenter(function(){
	clearTimeout(mytime1);
});
    return false; });
});
</script>

Последний раз редактировалось cOAPerator, 05.01.2013 в 11:24.
Ответить с цитированием
  #9 (permalink)  
Старый 05.01.2013, 11:33
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Сообщение от cOAPerator
(этого куска кода как раз и нету сейчас, и что дописывать не могу допереть)
Не наю - может позже к вечеру....Тут идеалогию другую нун придумывать - на скрытый блок нельзя навести мышью, после того как он скрылся - занчит тут другой эффект нужно применять для открытых блоков, типо анимации прозрачности - если нет курсора
Ответить с цитированием
  #10 (permalink)  
Старый 05.01.2013, 11:38
Аспирант
Отправить личное сообщение для cOAPerator Посмотреть профиль Найти все сообщения от cOAPerator
 
Регистрация: 04.01.2012
Сообщений: 78

Сообщение от Deff Посмотреть сообщение
на скрытый блок нельзя навести мышью, после того как он скрылся
он НЕ скрытый! он показан в данный момент.
этот кусок кода
function doid_1(){
	$(activeDiv).slideUp(1000);
}
$(activeDiv).mouseleave(function(){
	mytime1 = setTimeout(doid_1, 1000);
});
$(activeDiv).mouseenter(function(){
	clearTimeout(mytime1);
});
    return false; });
});

скрывает блок активный только в том случае, если на него навести мышой а потом убрать, и никак больше. mouseleave насколько я понимаю срабатывает "при убирании" мыши с блока открытого..

а как я написал выше, если не наводить на блок открытый, он не скрывается... на месте висит открытым.

попробуйте пошагово сделать как я выше написал, сами увидите)

Последний раз редактировалось cOAPerator, 05.01.2013 в 11:40.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как лучше сделать виджет? comentator Элементы интерфейса 0 25.03.2011 08:44
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Многостраничная галерея на lightbox.js Как сделать? MASTER Общие вопросы Javascript 9 24.07.2009 14:38