[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: FeRz1k  
Форум » Вэбмастерам » Скрипты для uCoz » Отражение аватора на форуме (Модуль: форум)
Отражение аватора на форуме
Goodik39Дата: Воскресенье, 02.11.2008, 03:25 | Сообщение # 1
Ph0en1x aka Good'1k
Постов на форуме: 1449
Репутация:
[ 218 ]
Подарки:
[ 81 ]
Не в сети
В общий вид страниц форума между тегами <head></head> вставляем код:
Code
<script type="text/javascript">     
document.getElementsByClassName = function(className) {     
            var children = document.getElementsByTagName('*') || document.all;     
            var elements = new Array();     
                        
            for (var i = 0; i < children.length; i++) {     
             var child = children[i];     
             var classNames = child.className.split(' ');     
             for (var j = 0; j < classNames.length; j++) {     
              if (classNames[j] == className) {     
               elements.push(child);     
               break;     
              }     
             }     
            }     
            return elements;     
}     

var Reflection = {     
            defaultHeight : 0.5,     
            defaultOpacity: 0.5,     
                       
            add: function(image, options) {     
             Reflection.remove(image);     
                        
             doptions = { "height" : Reflection.defaultHeight, "opacity" : Reflection.defaultOpacity }     
             if (options) {     
              for (var i in doptions) {     
               if (!options[i]) {     
                options[i] = doptions[i];     
               }     
              }     
             } else {     
              options = doptions;     
             }     
                       
             try {     
              var d = document.createElement('div');     
              var p = image;     
                         
              var classes = p.className.split(' ');     
              var newClasses = '';     
              for (j=0;j<classes.length;j++) {     
               if (classes[j] != "userAvatar") {     
                if (newClasses) {     
                 newClasses += ' '     
                }     
newClasses += classes[j];     
               }     
              }     

              var reflectionHeight = Math.floor(p.height*options['height']);     
              var divHeight = Math.floor(p.height*(1+options['height']));     
                         
              var reflectionWidth = p.width;     
                         
              if (document.all && !window.opera) {     
               /* Copy original image's classes & styles to div */     
               d.className = newClasses;     
               p.className = 'reflected';     
                          
               d.style.cssText = p.style.cssText;     
               p.style.cssText = 'vertical-align: bottom';     
                         
               var reflection = document.createElement('img');     
               reflection.src = p.src;     
               reflection.style.width = reflectionWidth+'px';     
                          
               reflection.style.marginBottom = "-"+(p.height-reflectionHeight)+'px';     
               reflection.style.filter = 'flipv progid:DXImageTransform.Microsoft.Alpha(opacity='+(options['opacity']*100)+', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy='+(options['height']*100)+')';     
                          
               d.style.width = reflectionWidth+'px';     
               d.style.height = divHeight+'px';     
               p.parentNode.replaceChild(d, p);     
                          
               d.appendChild(p);     
               d.appendChild(reflection);     
              } else {     
               var canvas = document.createElement('canvas');     
               if (canvas.getContext) {     
                /* Copy original image's classes & styles to div */     
                d.className = newClasses;     
                p.className = 'reflected';     
d.style.cssText = p.style.cssText;     
                p.style.cssText = 'vertical-align: bottom';     
                         
                var context = canvas.getContext("2d");     
                          
                canvas.style.height = reflectionHeight+'px';     
                canvas.style.width = reflectionWidth+'px';     
                canvas.height = reflectionHeight;     
                canvas.width = reflectionWidth;     
                           
                d.style.width = reflectionWidth+'px';     
                d.style.height = divHeight+'px';     
                p.parentNode.replaceChild(d, p);     
                           
                d.appendChild(p);     
                d.appendChild(canvas);     
                           
                context.save();     
                           
                context.translate(0,image.height-1);     
                context.scale(1,-1);     
                           
                context.drawImage(image, 0, 0, reflectionWidth, image.height);     
                       
                context.restore();     
                           
                context.globalCompositeOperation = "destination-out";     
                var gradient = context.createLinearGradient(0, 0, 0, reflectionHeight);     
                           
                gradient.addColorStop(1, "rgba(255, 255, 255, 1.0)");     
                gradient.addColorStop(0, "rgba(255, 255, 255, "+(1-options['opacity'])+")");     
                        
                context.fillStyle = gradient;     
                if (navigator.appVersion.indexOf('WebKit') != -1) {     
                 context.fill();     
                } else {     
                 context.fillRect(0, 0, reflectionWidth, reflectionHeight*2);     
                }     
               }     
              }     
             } catch (e) {     
                }     
            },     
                       
            remove : function(image) {     
             if (image.className == "reflected") {     
              image.className = image.parentNode.className;     
              image.parentNode.parentNode.replaceChild(image, image.parentNode);     
             }     
            }     
}     

function addReflections() {     
            var rimages = document.getElementsByClassName('userAvatar');     
            for (i=0;i<rimages.length;i++) {     
             var rheight = null;     
             var ropacity = null;     
                        
             var classes = rimages[i].className.split(' ');     
             for (j=0;j<classes.length;j++) {     
              if (classes[j].indexOf("rheight") == 0) {     
               var rheight = classes[j].substring(7)/100;     
              } else if (classes[j].indexOf("ropacity") == 0) {     
               var ropacity = classes[j].substring(8)/100;     
              }     
             }     
                        
             Reflection.add(rimages[i], { height: rheight, opacity : ropacity});     
            }     
}     

var previousOnload = window.onload;     
window.onload = function () { if(previousOnload) previousOnload(); addReflections(); }     
</script>


Команда - это капитан и игроки сплоченные вместе и чем больше вы будете помогать друг другу не только в игре но и в реальной жизни, тем приятнее и выше будет подъем к вершинам киберспортивного олимпа.
 
Форум » Вэбмастерам » Скрипты для uCoz » Отражение аватора на форуме (Модуль: форум)
  • Страница 1 из 1
  • 1
Поиск:
Статистика сайта
Последние новости Самые отвечаемые темы Последние статьи
EA раскрыла подробно... 18.04.2013
Bethesda прекращает ... 18.04.2013
Создатели World of T... 18.04.2013
Battlefield 4 не буд... 18.04.2013
Авторы Silent Hill: ... 18.04.2013
Курилка! 103
Общая тема для обсуждений 67
Изготовление аваторов 50
Новости сервера 37
Команда сайта 35
История Starcraft: Н... 10.02.2013
Почему в Valve решил... 20.08.2012
Танки рвутся в кибер... 15.08.2012
Лучшие финалы в исто... 17.06.2012
Киберспорт - спорт? ... 14.04.2012
Новые пользователи Активные пользователи Лучшие комментаторы
lamagames 12.07.2023
PiterRScaks 03.04.2022
guterNAvis 08.12.2021
cuperNAvis 20.11.2021
gIRONAvis 29.09.2021
Goodik39 1449
FeRz1k 319
WedMacK 200
warcraf 200
Rolex 156
Goodik39 56
FeRz1k 56
koJIxo3Huk 19
Die 13
scool 9