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

FeaR51 01.08.2012 19:44

Цитата:

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

Deff 01.08.2012 19:47

FeaR51,
Я так пока и не понял в ясности(* из-за обилия) кода задачи - мну просил Выложить сокращенку!

FeaR51 01.08.2012 20:10

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

Deff 01.08.2012 20:18

FeaR51,
Выложите нормальный минималистический HTML код для двух категорий

Или посмотрите это => http://javascript.ru/forum/dom-windo...tml#post182559 сообщение 21

FeaR51 01.08.2012 20:32

там древовидный, у меня ведь 5 листов которые переключаеются через display: block, либо none.
код я не смогу сделать минимальный) он не мой китая ведь, да и не сильно в этой части еще шарю, только учусь.

Deff 01.08.2012 20:34

FeaR51,
Цитата:

Сообщение от Deff
Выложите нормальный минималистический HTML код для двух категорий

Цитата:

Сообщение от FeaR51
код я не смогу сделать минимальный) он не мой китая ведь, да и не сильно в этой части еще шарю, только учусь.

http://htmlbook.ru/html
Тогда это не ко мне ( я не нянька - горшки подставлять

FeaR51 01.08.2012 20:36

Цитата:

код я не смогу сделать минимальный) он не мой китая ведь, да и не сильно в этой части еще шарю
та я могу попробывать, но не скора ;<
да и наврядле мой заработает :cray:

Deff 01.08.2012 20:37

FeaR51,
Не скрипты - нужно необходимое HTML (достаточно заголовков ) Навороты внутри тегов - не нужны вовсе

FeaR51 01.08.2012 20:38

ааа

FeaR51 01.08.2012 20:42

<div id="wq_list1">//первый лист
          <table width="800" cellpadding="0" cellspacing="0" class="wq_list" border="1" bordercolor="#49FF00"> 
            <tr>
              <td class="wq_img"><img src="upload/item/кровавая длань.jpg" height="88" width="88" /><br />
                кровавая длань</td>
                </td>
            </tr>
          </table>
        </div>
        <div id="wq_list2" style="display:none;">//лист 2
          <table width="800" cellpadding="0" cellspacing="0" class="wq_list" border="1" bordercolor="#49FF00"> 
            <tr>
              <td class="wq_img"><img src="upload/item/шелковый плащ.jpg" height="88" width="88" /><br />
                шелковый плащ</td>
            </tr>
          </table>
        </div>

это нет:?

Deff 01.08.2012 20:59

FeaR51,
Опишите какие категории скрыты и по какому условию - раскрываются ?
И отметьте - (*на втором дубле ) где контент, который скрыт
к примеру

Тут контент

FeaR51 01.08.2012 21:08

<div id="wq_list1">//первый лист
Тут контент
</div>
<div id="wq_list2" style="display:none;">//лист 2
Тут контент

</div>

Скрыты они по условиям скрипта в первом посте, display=none, при наведение мышкой на определенный лист (оружие,броня и тд) меняются опции дисплея для каждого листа.

Deff 01.08.2012 21:21

FeaR51,
Полную ссылку дайте upload/item/кровавая длань.jpg

Или перезалить сюда http://uploads.ru/

FeaR51 01.08.2012 21:28

http://rot.whitecrows.ru/upload/кровавая%20длань.jpg

FeaR51 01.08.2012 21:34

просто изменил картинки, раньше по папкам были, но в связи с тем, что надо было перепечатать ~500 картинок руками (чертов китай у них каждая картинка идет файлом! даже если повторяется) решил в общую кинуть.

Deff 01.08.2012 21:37

FeaR51,
Вопрос - на что наводим то курсором, чтобы раскрывалось ? ( Листы то скрыты - должна быть не скрытая иконка

FeaR51 01.08.2012 21:46

Цитата:

<div class="wq_tag">
<span class="on" id="wq_tag1" onmousemove="this.className='on';document.getEleme ntById('wq_tag2').className='none';document.getEle mentById('wq_tag3').className='none';document.getE lementById('wq_tag4').className='none';document.ge tElementById('wq_tag5').className='none';document. getElementById('wq_list1').style.display='block';d ocument.getElementById('wq_list2').style.display=' none';document.getElementById('wq_list3').style.di splay='none';document.getElementById('wq_list4').s tyle.display='none';document.getElementById('wq_li st5').style.display='none';">оружие</span>

<span id="wq_tag2" onmousemove="this.className='on';document.getEleme ntById('wq_tag1').className='none';document.getEle mentById('wq_tag3').className='none';document.getE lementById('wq_tag4').className='none';document.ge tElementById('wq_tag5').className='none';document. getElementById('wq_list2').style.display='block';d ocument.getElementById('wq_list1').style.display=' none';document.getElementById('wq_list3').style.di splay='none';document.getElementById('wq_list4').s tyle.display='none';document.getElementById('wq_li st5').style.display='none';">броня</span>

<span id="wq_tag3" onmousemove="this.className='on';document.getEleme ntById('wq_tag2').className='none';document.getEle mentById('wq_tag1').className='none';document.getE lementById('wq_tag4').className='none';document.ge tElementById('wq_tag5').className='none';document. getElementById('wq_list3').style.display='block';d ocument.getElementById('wq_list2').style.display=' none';document.getElementById('wq_list1').style.di splay='none';document.getElementById('wq_list4').s tyle.display='none';document.getElementById('wq_li st5').style.display='none';">ботинки</span>

<span id="wq_tag4" onmousemove="this.className='on';document.getEleme ntById('wq_tag2').className='none';document.getEle mentById('wq_tag3').className='none';document.getE lementById('wq_tag1').className='none';document.ge tElementById('wq_tag5').className='none';document. getElementById('wq_list4').style.display='block';d ocument.getElementById('wq_list2').style.display=' none';document.getElementById('wq_list3').style.di splay='none';document.getElementById('wq_list1').s tyle.display='none';document.getElementById('wq_li st5').style.display='none';">поддержка</span>

<span id="wq_tag5" onmousemove="this.className='on';document.getEleme ntById('wq_tag2').className='none';document.getEle mentById('wq_tag3').className='none';document.getE lementById('wq_tag1').className='none';document.ge tElementById('wq_tag4').className='none';document. getElementById('wq_list5').style.display='block';d ocument.getElementById('wq_list2').style.display=' none';document.getElementById('wq_list3').style.di splay='none';document.getElementById('wq_list4').s tyle.display='none';document.getElementById('wq_li st1').style.display='none';">расходные</span> </div>
вот тут выделил жирным и подчеркнул

Deff 01.08.2012 22:02

FeaR51,
Как на него навести - коль оно скрыто ?
Лан ща подумаю

FeaR51 01.08.2012 22:05

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

Deff 01.08.2012 22:16

FeaR51,
Вопрос - а при наведении на второй лист = с первым -что делается ?

FeaR51 01.08.2012 22:23

у первого становится display=none
у второго display=block

Deff 01.08.2012 22:56

FeaR51,
:write: На JQ
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('div.wrap').mouseenter(function(){
      $('div.wrap').not(this).find('div[id^="wq_list"]').hide('slow')
      $(this).find('div[id^="wq_list"]').show('slow')
    }).mouseleave(function(){
    });

});
</script>
<style type="text/css">
.wrap div[id^="wq_list"] {
  width:800!important;
}
</style>

<div class="wrap">
          <h2>кровавая длань</h2>
<div id="wq_list1">

          <table  width="800" cellpadding="0" cellspacing="0" class="wq_list" border="1" bordercolor="#49FF00"> 
            <tr>
              <td class="wq_img">//первый лист<br />

		<img src="http://rot.whitecrows.ru/upload/кровавая%20длань.jpg" height="88" width="88" /><br />

		  </td>
               </tr>
          </table>

</div>
</div>

<div class="wrap">
          <h2>шелковый плащ</h2>
   <div id="wq_list2" style="display:none;">

          <table width="800" cellpadding="0" cellspacing="0" class="wq_list" border="1" bordercolor="#49FF00"> 
	     <tr>
              <td class="wq_img">//лист 2<br />

		<img src="http://rot.whitecrows.ru/upload/кровавая%20длань.jpg" height="88" width="88" /><br />

		  </td>
            </tr>
          </table>

    </div>
</div>

<div class="wrap">
          <h2>полосатая кепка</h2>
<div id="wq_list3" style="display:none;">

          <table  width="800" cellpadding="0" cellspacing="0" class="wq_list" border="1" bordercolor="#49FF00"> 
            <tr>
              <td class="wq_img">//лист 3<br />

		<img src="http://rot.whitecrows.ru/upload/кровавая%20длань.jpg" height="88" width="88" /><br />

		  </td>
               </tr>
          </table>

</div>
</div>

Скрипты и стиль в хидер (или вверх страницы... хотя и в самом низу будут работать

FeaR51 01.08.2012 23:15

<div class="wrap"> - это перед листом пхать или перед предметом?
просто предмет в листе -_-

Deff 01.08.2012 23:18

Цитата:

<div class="wrap">
<h2>шелковый плащ</h2>
<div id="wq_list2" style="display:none;">

<table width="800" cellpadding="0" cellspacing="0" class="wq_list" border="1" bordercolor="#49FF00">
<tr>
<td class="wq_img">//лист 2<br />

<img src="http://rot.whitecrows.ru/upload/кровавая%20длань.jpg" height="88" width="88" /><br />

</td>
</tr>
</table>

</div>
</div>
Фиолетовым - надпись или шо там - при наведении

Всё, что внутри синего - сворачиваецо

FeaR51 01.08.2012 23:31

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

FeaR51 01.08.2012 23:42

<div class="wrap"><span id="wq_tag1"><h2>оружие</h2></span> <span id="wq_tag2"><h2>броня</h2></span> <span id="wq_tag3"><h2>ботинки</h2></span> <span id="wq_tag4"><h2>поддержка</h2></span> <span id="wq_tag5"><h2>расходные</h2></span></div>

что попровить, чтобы работали через id?

Deff 01.08.2012 23:51

Цитата:

Сообщение от FeaR51
что попровить, чтобы работали через id?

Расшифруйте вопрос полностью - отвлекают - теряю нить обсуждения
Ваше кликабельная надпись - сирененвым

Цитата:

<div class="wrap">
<h2>шелковый плащ</h2>
<div id="wq_list2" style="display:none;">
Ваш скрываемый контент
тут
</div>
</div>
Синее и красное - не меняем
сиреневое и черное - как душе угодно - главное - соблюдаем парность тегов

// И не пишите всё в строчку - разделяйте - лучше пожертвовать парой пробелов и переводов строк - чем разбираться в каше

FeaR51 01.08.2012 23:55

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

FeaR51 01.08.2012 23:58

<div class="wq_tag"> 
        <span class="on"  id="wq_tag1">оружие</span> 
        <span id="wq_tag2">броня</span> 
        <span id="wq_tag3">ботинки</span> 
        <span id="wq_tag4">поддержка</span> 
        <span id="wq_tag5">расходные</span></div>
<div id="wq_list1">
лист 1
</div>
<div id="wq_list2" style="display:none;">
лист 2
</div>


вот например

Deff 02.08.2012 00:00

Цитата:

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

:blink: А где Вы раньше были ???
Ждите


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