BB-Code матрица

Бесплатные и интересные решения для сайтов.
Правила форума
1. Темы с названиями Помогите, Как сделать, Хелп, Не могу найти и так далее будут перенесении в мусорку без предупреждения!
2. Любой транс-лит будет удален, так что подумайте стоит ли писать транс-литом.
3. Темы не по тематике этого раздела будут также перенесены в мусорку. (Например по DLE, phpBB, php скриптам и так далее...)
4. Не забываем про Общие правила форума!
Внимание: В этом разделе можно оставлять только готовые скрипты, для вопросов есть раздел Общение!!! :evil: Иначе, получите предупреждение, а потом бан :D .
Ответить
бафоед
Сообщения: 1
Зарегистрирован: 01 май 2009, 10:43

BB-Code матрица

Сообщение бафоед »

Вот это в head общего вида страниц форума:

Код: Выделить всё

    <style type="text/css">
    .matrix { font-family:Lucida Console, Courier, Monotype; font-size:10pt; text-align:center; width:10px; padding:0px; margin:0px;}
    </style>

    <script type="text/javascript" language="JavaScript">

    <!--
    var rows=11; // must be an odd number
    var speed=50; // lower is faster
    var reveal=2; // between 0 and 2 only. The higher, the faster the word appears
    var effectalign="default" //enter "center" to center it.

    /***********************************************
    * Visit http://www.cineshow.3dn.ru for full source code
    ***********************************************/

    var w3c=document.getElementById && !window.opera;;
    var ie45=document.all && !window.opera;
    var ma_tab, matemp, ma_bod, ma_row, x, y, columns, ma_txt, ma_cho;
    var m_coch=new Array();
    var m_copo=new Array();
    window.onload=function() {
      if (!w3c && !ie45) return
       var matrix=(w3c)?document.getElementById("matrix"):document.all["matrix"];
       ma_txt=(w3c)?matrix.firstChild.nodeValue:matrix.innerHTML;
       ma_txt=" "+ma_txt+" ";
       columns=ma_txt.length;
       if (w3c) {
         while (matrix.childNodes.length) matrix.removeChild(matrix.childNodes[0]);
         ma_tab=document.createElement("table");
         ma_tab.setAttribute("border", 0);
         ma_tab.setAttribute("align", effectalign);
         ma_tab.style.backgroundColor="#000000";
         ma_bod=document.createElement("tbody");
         for (x=0; x<rows; x++) {
           ma_row=document.createElement("tr");
           for (y=0; y<columns; y++) {
             matemp=document.createElement("td");
             matemp.setAttribute("id", "Mx"+x+"y"+y);
             matemp.className="matrix";
             matemp.appendChild(document.createTextNode(String.fromCharCode(160)));
             ma_row.appendChild(matemp);
           }
           ma_bod.appendChild(ma_row);
         }
         ma_tab.appendChild(ma_bod);
         matrix.appendChild(ma_tab);
       } else {
         ma_tab='<ta'+'ble align="'+effectalign+'" border="0" style="background-color:#000000">';
         for (var x=0; x<rows; x++) {
           ma_tab+='<t'+'r>';
           for (var y=0; y<columns; y++) {
             ma_tab+='<t'+'d class="matrix" id="Mx'+x+'y'+y+'"> </'+'td>';
           }
           ma_tab+='</'+'tr>';
         }
         ma_tab+='</'+'table>';
         matrix.innerHTML=ma_tab;
       }
       ma_cho=ma_txt;
       for (x=0; x<columns; x++) {
         ma_cho+=String.fromCharCode(32+Math.floor(Math.random()*94));
         m_copo[x]=0;
       }
       ma_bod=setInterval("mytricks()", speed);
    }

    function mytricks() {
       x=0;
       for (y=0; y<columns; y++) {
         x=x+(m_copo[y]==100);
         ma_row=m_copo[y]%100;
         if (ma_row && m_copo[y]<100) {
           if (ma_row<rows+1) {
             if (w3c) {
               matemp=document.getElementById("Mx"+(ma_row-1)+"y"+y);
               matemp.firstChild.nodeValue=m_coch[y];
             }
             else {
               matemp=document.all["Mx"+(ma_row-1)+"y"+y];
               matemp.innerHTML=m_coch[y];
             }
             matemp.style.color="#33ff66";
             matemp.style.fontWeight="bold";
           }
           if (ma_row>1 && ma_row<rows+2) {
             matemp=(w3c)?document.getElementById("Mx"+(ma_row-2)+"y"+y):document.all["Mx"+(ma_row-2)+"y"+y];
             matemp.style.fontWeight="normal";
             matemp.style.color="#00ff00";
           }
           if (ma_row>2) {
               matemp=(w3c)?document.getElementById("Mx"+(ma_row-3)+"y"+y):document.all["Mx"+(ma_row-3)+"y"+y];
             matemp.style.color="#009900";
           }
           if (ma_row<Math.floor(rows/2)+1) m_copo[y]++;
           else if (ma_row==Math.floor(rows/2)+1 && m_coch[y]==ma_txt.charAt(y)) zoomer(y);
           else if (ma_row<rows+2) m_copo[y]++;
           else if (m_copo[y]<100) m_copo[y]=0;
         }
         else if (Math.random()>0.9 && m_copo[y]<100) {
           m_coch[y]=ma_cho.charAt(Math.floor(Math.random()*ma_cho.length));
           m_copo[y]++;
         }
       }
       if (x==columns) clearInterval(ma_bod);
    }

    function zoomer(ycol) {
       var mtmp, mtem, ytmp;
       if (m_copo[ycol]==Math.floor(rows/2)+1) {
         for (ytmp=0; ytmp<rows; ytmp++) {
           if (w3c) {
             mtmp=document.getElementById("Mx"+ytmp+"y"+ycol);
             mtmp.firstChild.nodeValue=m_coch[ycol];
           }
           else {
             mtmp=document.all["Mx"+ytmp+"y"+ycol];
             mtmp.innerHTML=m_coch[ycol];
           }
           mtmp.style.color="#33ff66";
           mtmp.style.fontWeight="bold";
         }
         if (Math.random()<reveal) {
           mtmp=ma_cho.indexOf(ma_txt.charAt(ycol));
           ma_cho=ma_cho.substring(0, mtmp)+ma_cho.substring(mtmp+1, ma_cho.length);
         }
         if (Math.random()<reveal-1) ma_cho=ma_cho.substring(0, ma_cho.length-1);
         m_copo[ycol]+=199;
         setTimeout("zoomer("+ycol+")", speed);
       }
       else if (m_copo[ycol]>200) {
         if (w3c) {
           mtmp=document.getElementById("Mx"+(m_copo[ycol]-201)+"y"+ycol);
           mtem=document.getElementById("Mx"+(200+rows-m_copo[ycol]--)+"y"+ycol);
         }
         else {
           mtmp=document.all["Mx"+(m_copo[ycol]-201)+"y"+ycol];
           mtem=document.all["Mx"+(200+rows-m_copo[ycol]--)+"y"+ycol];
         }
         mtmp.style.fontWeight="normal";
         mtem.style.fontWeight="normal";
         setTimeout("zoomer("+ycol+")", speed);
       }
       else if (m_copo[ycol]==200) m_copo[ycol]=100+Math.floor(rows/2);
       if (m_copo[ycol]>100 && m_copo[ycol]<200) {
         if (w3c) {
           mtmp=document.getElementById("Mx"+(m_copo[ycol]-101)+"y"+ycol);
           mtmp.firstChild.nodeValue=String.fromCharCode(160);
           mtem=document.getElementById("Mx"+(100+rows-m_copo[ycol]--)+"y"+ycol);
           mtem.firstChild.nodeValue=String.fromCharCode(160);
         }
         else {
           mtmp=document.all["Mx"+(m_copo[ycol]-101)+"y"+ycol];
           mtmp.innerHTML=String.fromCharCode(160);
           mtem=document.all["Mx"+(100+rows-m_copo[ycol]--)+"y"+ycol];
           mtem.innerHTML=String.fromCharCode(160);
         }
         setTimeout("zoomer("+ycol+")", speed);
       }
    }
    // -->
    </script>



Затем после $BODY$

Код: Выделить всё

<script type="text/javascript"> 
e=document.getElementsByTagName("TD");
for(k=15; k<e.length;k++) {
if(e[k].className=='posttdMessage') {
s=e[k].innerHTML;
while (s.indexOf('[matr]') != -1){
s=s.replace('[matr]','<div id="matrix">'); s=s.replace('[/matr]','</div>');
e[k].innerHTML=s;
}
} }
</script>



В форму добавления сообщения после BBCODES

Код: Выделить всё

<input type="button" value="Матрица" onclick="simpletag('matr][/matr','','','message',''); return false;" class="codeButtons" title="Текст матрица" name="matr"/>



Скрина простите нет, попробуйте сами
Аватара пользователя
XxMARSxX
Сообщения: 1991
Зарегистрирован: 20 апр 2008, 18:02

Re: BB-Code матрица

Сообщение XxMARSxX »

а если на странице уже кто-то юзал этот тег? или в одном сообщении несколько раз заюзать?

а?

это раз, есть куча ошибок в скрипте, во многих местах пропущены буквы или символы - это два

тупой копипаст тут не нужен - это три
Ахтунг!

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

А у меня Windows 7 :P

Изображение
Что такое НЕТЕЛИБ?
Ответить