Новые сообщения · Участники · Правила форума · Поиск · RSS
  • Страница 1 из 1
  • 1
Скрипт отражения аватар на форуме для uCoz
MeNameLarchik
Offline
Дата: Вторник, 27.04.2010, 23:24 | Сообщение # 1
Сообщений пользователя: 83
Репутация: 7

Скрипт для uCoz который создаёт зеркальное отражение аватара на форуме

Заходим в Панель управления>>управление дизайном>>общий вид форума и между тегами 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>


Fakir-amxserv.ru лучший из развлекательно-софтово-игровых!)
 
  • Страница 1 из 1
  • 1
Поиск:

Статистика Форума
Последнии темы Читаемые темы Лучшии пользователи Новые пользователи
Тизерная сеть! Bodyclick (1)
Создания банера кнопки, ... (11)
Уведомления о регистраци... (0)
Профиль для ucoz в нижне... (0)
Красивый информер для фа... (0)
Вопросы по сайтам Uco... (46)
Мы против читов! (27)
КАК вам наш сайт??? (24)
Обсуждение файлов сай... (23)
Заказываем домен (20)
FAKIR (456)
MeNameLarchik (83)
Ser@fim (51)
NomerOK (32)
ADoS (28)
Cynthiafoova (06.05.2025)
LavillTig (30.04.2025)
Carajence (06.04.2025)
MilaKib (05.04.2025)
RussiaN (07.04.2016)