Время: 07:27
Вторник 25.04.2017
[ Новые сообщения · Учасники · Правила форума · Быстрий Поиск · RSS ]
Страница 1 из 11
Модератор форума: rysinyak 
Форум » uCoz » Скрипты » Зеркальное отражение аватарок
Зеркальное отражение аватарок
rysinyak Дата: Понедельник, 02.11.2009, 18:15 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 78
Награды: 10
Репутация: 20
:-(
Смайл настроения:

Зеркальное отражение аватарок на форуме

Форум - Общий вид страниц форума.

После тэга </body> ставим:

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 из 11
Поиск:
Статистика Форума
Последние обновленные темы Самые популярные темы Лучшии пользователи Новые пользователи Самые популярны СОФТ
Зарабатывать в интернете деньги не только реально, но и удоб (1)
Заработай бесплатные биткоины (bitcoin) здесь! (0)
Легкий заработок без вложений для новичка. (0)
..№7..ЗАРАБОТОК НА ВЫПОЛНЕНИИ ЗАДАНИЙ.ЗАРАБОТОК В СОЦ СЕТЯХ. (0)
..№6.. ЕЩЁ ОДИН ПОПУЛЯРНЫЙ БУКС. ДОХОД ОТ 100 РУБЛЕЙ В ДЕНЬ. (0)
..№5.. ПРОВЕРЕННЫЙ СПОСОБ ЗАРАБОТКА ДЛЯ НОВИЧКОВ (0)
..№4.. ЗАРАБОТОК НА РАСШИРЕНИИ ДЛЯ БРАУЗЕРА (0)
..№3.. ЗАРАБОТОК В СОЦИАЛЬНЫХ СЕТЯХ (0)
..№2..ОТЛИЧНЫЙ САЙТ ДЛЯ ЗАРАБОТКА БЕЗ ВЛОЖЕНИЙ (0)
ЛУЧШИЙ ДОХОД БЕЗ ВЛОЖЕНИЙ 100-500 РУБЛЕЙ В ДЕНЬ (0)
Битая ссылка, Нерабочая ссылка (31)
Скрипт "Распечатать страницу" (4)
Photoshop онлайн на своем сайте (4)
Как попасть в бан Google - быстро и с гарантией! (2)
Нет аватара (2)
Бот на форум! (2)
Древовидное меню сайта (2)
Раскрутка сайтов (2)
Нужен скрипт (2)
Бот для миничата (1)
rysinyak
jasminka
Batareyka
andryhha97
kragsburger
mobile
MyLife
sbvasyl
Lookflaco
matt
jodexi
rikki7575
acerius2010
doradion
dima31012003koposov
mrvolkov490
Kapiton
invwedsite
kdc-dk-Nesterov
hocut
DjVu Viewer v6.1.0.1492
Windows Media Player 12 Rus Полная Руская версия!
ACDSee Pro 9.1
1С Предприятие 8.2 Для України +конфиг
Активатор Windows 8.1
Network Assistant 4.5 Final (build 2668) + смайлики + keygen
ProLing Office 5.0 SP2 Standard + crack скачать бесплатно
Pragma 6.0.101.11 Business + Cловари 6.0.100.11 + crack скачать бесплатно
Carambis Driver Updater 1.1.2
ABBYY FineReader 12