Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #21 (permalink)  
Старый 08.01.2012, 18:52
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

когда ты сказал скинуть я начал копировать, и увидел - <tr id="0"></tr>.
это фикс от бага плейера

вобщем из за этого блока было нечетное число - а потом и все криво.

спасибо огроменное
Ответить с цитированием
  #22 (permalink)  
Старый 08.01.2012, 18:52
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

убрал его и все работает четко
Ответить с цитированием
  #23 (permalink)  
Старый 08.01.2012, 18:56
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

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

http://javascript.ru/forum/attachmen...d=132603455 3



бесит
Изображения:
Тип файла: jpg 2012-01-08_185504.jpg (89.4 Кб, 15 просмотров)
Ответить с цитированием
  #24 (permalink)  
Старый 13.01.2012, 16:28
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

кстати придумал как усовершенствовать...
нужно tr с id="play"+переменная[NOWplaying] и tr корорый рядом с ним(снизу от него, это тулбар типа громкость, время, и т.д.) помещались в самый верх, а потом все остальные разбросались в рандомном порядке.

Aetae, если сделаешь, еще денежку кину,
это ко всем относится =)
Ответить с цитированием
  #25 (permalink)  
Старый 13.01.2012, 17:57
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

<html>
<body>
Клик.
<table id='music'>
 <tr><td>1</td></tr>
 <tr><td>2</td></tr>
 <tr id="play"><td>play</td></tr>
 <tr><td>кplay</td></tr>
 <tr><td>3</td></tr>
 <tr><td>4</td></tr>
 <tr><td>5</td></tr>
 <tr><td>6</td></tr>
 <tr><td>7</td></tr>
 <tr><td>8</td></tr>
 <tr><td>9</td></tr>
 <tr><td>10</td></tr>
 <tr><td>11</td></tr>
 <tr><td>12</td></tr>
</table>

<script>
window.onclick = function(){
   var d = document,
   table = d.getElementById('music'),
   fragment = d.createDocumentFragment(),
   tr = table.rows,
   arr = [], i , j;
   
   table=tr[0].parentNode; //ибо tbody итп
   
   i=d.getElementById('play').rowIndex;
  
   fragment.appendChild(tr[i]);
   fragment.appendChild(tr[i]);
   
   i=j=tr.length;
   
   if('v'=='\v') while(i--) arr.push(tr[i]); //ie<9
   else arr=arr.slice.call(tr);

   table.insertBefore( fragment, tr[0] )
  
   return function(){
     i=j;
     arr.sort(function(){return .5-Math.random()})  
     while(i--) table.appendChild( arr[i] )
   }
 }();
</script>

</body>
</html>


Если я правильно понял. Вообще подгонять скрипт под вёрстку нехорошо. Надо работать сразу над тем и над другим, только тогда будет и красиво и быстро.
__________________
29375, 35
Ответить с цитированием
  #26 (permalink)  
Старый 15.01.2012, 13:50
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

все верно, но у меня мнов все наперекосяк =)

вобщем вверх подняло тр с заданным id.
перемешала порядка 5 треков, и все.
повторно выполнять функцию не удается.

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

значит мы друг друга не поняли))

вот как устроена таблица у нас:

<table id='music'>
 <tr id="play2"><td>1</td></tr>
 <tr><td>1k</td></tr>
 <tr id="play2"><td>play</td></tr>
 <tr><td>2k</td></tr>
 <tr id="play3"><td>3</td></tr>
 <tr><td>3k</td></tr>
....
</table>


нам надо чтобы tr getElementById('play'+NOWplaying)
поднималась вверх, а остальные разбрасывались в раномном порядке.
тоесть типа разбрасывать все блоки с прилежащими к ним, кроме
getElementById('play'+NOWplaying)

NOWplaying - переменная не должна задаваться функцией, это у нас в скрипте id текушего трека (который вопроизводится)
Ответить с цитированием
  #27 (permalink)  
Старый 15.01.2012, 15:02
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

<html>
<body>
Клик.
<table id='music'>
 <tr id="play1"><td>1</td></tr>
 <tr><td>1k</td></tr>
 <tr id="play2"><td>play</td></tr>
 <tr><td>play2k</td></tr>
 <tr id="play3"><td>3</td></tr>
 <tr><td>3k</td></tr>
 <tr id="play4"><td>4</td></tr>
 <tr><td>4k</td></tr>
 <tr id="play5"><td>5</td></tr>
 <tr><td>5k</td></tr>
</table>

<script>
NOWplaying=2;

window.onclick = function(){
   var table = document.getElementById('music'),
   tr = table.rows,
   i=tr.length, j=i/2,
   arr = [];
   
   table=tr[0].parentNode; //ибо tbody итп
   
   while(i--) arr.push([tr[i],tr[--i]]);

   return function(){
   
     i=j; arr.sort(function(){return .5-Math.random()});
    
     while(i--) {
       if(arr[i][1].id==='play'+NOWplaying){
         table.insertBefore( arr[i][0], tr[0] );
         table.insertBefore( arr[i][1], tr[0] );
       }else{
         table.appendChild( arr[i][1] );
         table.appendChild( arr[i][0] );
       }
     }
   }
 }();
</script>

</body>
</html>


Ток количество tr должно быть четным иначе плохо будет.))
__________________
29375, 35

Последний раз редактировалось Aetae, 15.01.2012 в 15:05.
Ответить с цитированием
  #28 (permalink)  
Старый 16.01.2012, 15:04
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

тоесть? в какой строке его задавать?

i=j; arr.sort(function(){return .5-Math.random()});


??
Ответить с цитированием
  #29 (permalink)  
Старый 16.01.2012, 16:30
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,586

Не надо ничего задавать.)
Хорошо:
<tr></tr>
<tr></tr>
Плохо:
<tr></tr>
<tr></tr>
<tr></tr>


В принципе у вас так и есть, просто малоли лишняя tr попадётся и всё поломает.)

Кстати, взглянув нетрезвым взглядом, упростил:
<html>
<body>
Клик.
<table id='music'>
 <tr id="play1"><td>1</td></tr>
 <tr><td>1k</td></tr>
 <tr id="play2"><td>play</td></tr>
 <tr><td>play2k</td></tr>
 <tr id="play3"><td>3</td></tr>
 <tr><td>3k</td></tr>
 <tr id="play4"><td>4</td></tr>
 <tr><td>4k</td></tr>
 <tr id="play5"><td>5</td></tr>
 <tr><td>5k</td></tr>
</table>

<script>
NOWplaying=2;

window.onclick = function(){
   var table = document.getElementById('music'),
   tr = table.rows,
   i=tr.length, j=i/2,
   arr = [];
   
   table=tr[0].parentNode; //ибо tbody итп
   
   while(i--) arr.push([tr[i],tr[--i]]);

   return function(){
   
     i=j; arr.sort(function(){return .5-Math.random()});
    
     while(i--) if(arr[i][1].id!=='play'+NOWplaying){
       table.appendChild( arr[i][1] );
       table.appendChild( arr[i][0] );
     }
   }
 }();
</script>

</body>
</html>
__________________
29375, 35

Последний раз редактировалось Aetae, 16.01.2012 в 16:38.
Ответить с цитированием
  #30 (permalink)  
Старый 17.01.2012, 19:25
Аватар для RazZzeR
Кандидат Javascript-наук
Отправить личное сообщение для RazZzeR Посмотреть профиль Найти все сообщения от RazZzeR
 
Регистрация: 11.12.2011
Сообщений: 146

хмм, поставил, ни ошибок, ни раскидывания.... ищю в этом связь...

нашел. переменная table и tr уже используется... исправляю.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Печать невидимых блоков mixeeff Events/DOM/Window 7 11.03.2009 11:41