Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   якори хтмл и динам. смена (https://javascript.ru/forum/xhtml-html-css/30339-yakori-khtml-i-dinam-smena.html)

FeaR51 01.08.2012 03:50

якори хтмл и динам. смена
 
Якори в html
проблема в том, что якори перестают работать если та область не активна..
http://rot.whitecrows.ru/item - вот сама страница.
<div class="wq_tag"> <span class="on"  id="wq_tag1" onmousemove="this.className='on';document.getElementById('wq_tag2').className='none';document.getElementById('wq_tag3').className='none';document.getElementById('wq_tag4').className='none';document.getElementById('wq_tag5').className='none';document.getElementById('wq_list1').style.display='block';document.getElementById('wq_list2').style.display='none';document.getElementById('wq_list3').style.display='none';document.getElementById('wq_list4').style.display='none';document.getElementById('wq_list5').style.display='none';">оружие</span> <span id="wq_tag2" onmousemove="this.className='on';document.getElementById('wq_tag1').className='none';document.getElementById('wq_tag3').className='none';document.getElementById('wq_tag4').className='none';document.getElementById('wq_tag5').className='none';document.getElementById('wq_list2').style.display='block';document.getElementById('wq_list1').style.display='none';document.getElementById('wq_list3').style.display='none';document.getElementById('wq_list4').style.display='none';document.getElementById('wq_list5').style.display='none';">броня</span> <span id="wq_tag3" onmousemove="this.className='on';document.getElementById('wq_tag2').className='none';document.getElementById('wq_tag1').className='none';document.getElementById('wq_tag4').className='none';document.getElementById('wq_tag5').className='none';document.getElementById('wq_list3').style.display='block';document.getElementById('wq_list2').style.display='none';document.getElementById('wq_list1').style.display='none';document.getElementById('wq_list4').style.display='none';document.getElementById('wq_list5').style.display='none';">ботинки</span> <span id="wq_tag4" onmousemove="this.className='on';document.getElementById('wq_tag2').className='none';document.getElementById('wq_tag3').className='none';document.getElementById('wq_tag1').className='none';document.getElementById('wq_tag5').className='none';document.getElementById('wq_list4').style.display='block';document.getElementById('wq_list2').style.display='none';document.getElementById('wq_list3').style.display='none';document.getElementById('wq_list1').style.display='none';document.getElementById('wq_list5').style.display='none';">поддержка</span> <span id="wq_tag5" onmousemove="this.className='on';document.getElementById('wq_tag2').className='none';document.getElementById('wq_tag3').className='none';document.getElementById('wq_tag1').className='none';document.getElementById('wq_tag4').className='none';document.getElementById('wq_list5').style.display='block';document.getElementById('wq_list2').style.display='none';document.getElementById('wq_list3').style.display='none';document.getElementById('wq_list4').style.display='none';document.getElementById('wq_list1').style.display='none';">расходные</span> </div>


вот кусок кода отвечающий за смену
как заставить чтобы якорь заставлял активировать нужный лист?

Deff 01.08.2012 04:13

FeaR51,
Ой - перепишите скрипт вызовом функций - ну не айс тупо разглядывать теги по полкилометра

Типо таво:

<span class="on"  id="wq_tag1" data="Parametr1,Parametr2.и тд." onmousemove="callFunc(this)">оружие</span>
<span class="on"  id="wq_tag1" data="Parametr3,Parametr4.и тд." onmousemove="callFunc(this)">оружие</span>


<script>
function callFunc(a) {
 //Тут что- то считывающее параметры из атрибута data и выполняюшее нужные деяния
}
</script>

FeaR51 01.08.2012 04:30

та скрипт не мой я с китая граббером вытянул
http://www.tianyijue.com/tyj/hero_list.html
сейчас перевожу и адаптирую...
первоначальный код лучше не смотреть :<

FeaR51 01.08.2012 04:54

та и вообще я пример только кинул, что прописать в якоре, чтобы он активировал нужный лист

Deff 01.08.2012 16:54

FeaR51,
Пробуйте пояснить более доступно и с минимальным примером - для якоря достаточно одной ссылки или элемента с id (смысл в демо остального контента ?

FeaR51 01.08.2012 17:47

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

Deff 01.08.2012 17:51

FeaR51,
оберните cкрытый блок еще одним div и в нем проставьте id - вот по якорю данного id и будет переходить
а по событию скролл считываете hash и открываете нужный дочерний узел следующий за якорем

FeaR51 01.08.2012 19:03

а можно сделать 2ух ступенчатые якори? типо #лист1#предмет1

FeaR51 01.08.2012 19:04

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

Deff 01.08.2012 19:14

FeaR51,
Суньте под первую обертку несколько подякорей
<label id="подкатегория_1"></label>
<label id="подкатегория_2"></label>
<label id="подкатегория_3"></label>
Единственное - каждая подкатегория должна обладать уникальным id( в отличие от списка лист ( и по скроллу анализируйте - далее находим родителя и открываем дочерний div


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