Проба за имитацдия на Flash с JScript. Това бъг ли е?
Автор |
|
phrozencrewПет, 10.08.07, 10:32 |
Здравейте, Опитвам се да напиша едно меню с JScript ефект, който симулира Flash fadeIn и fadeOut, но ми излиза следната грешка - при бързо преминаване с мишката през менюто цветовете не могат да се рефрешнат. Ако се мине бавно няма проблеми. Ето за какво говоря: http://web-making.hit.bg/psevdoflash/psevdoflash_js.htmlА ето и JScript кода: var kk;
var myColors = new Array(
'#FFFFFF',
'#FFFF99',
'#FFFF11',
'#FFFF00',
'#FFFF11',
'#FFFF99',
'#FFFFFF'
);
function lele(index,element) {
kk = element;
if(index=='') {
index = 0;
}
timer=setTimeout('lele(' + (index+1) + ', kk)', 20);
document.getElementById(element).style.backgroundColor=myColors[index];
if (index > myColors.length) {
clearTimeout(timer);
}
} |
Ще съм благодарен, ако някой ме светне как да подсигуря изчезването на цвета след махане на мишката. | | insecteaterПет, 10.08.07, 14:30 |
Ами бъг е, но във функцията , между другото доста коварен и ако не си проследиш променливите, зор ще го откриеш. Ето новата фукнция: function lele(index, element) {
kk = element;
if(index=='') {
index = 0;
}
timer=setTimeout('lele(' + (index+1) + ', "'+kk+'")', 20);
document.getElementById(element).style.backgroundColor=myColors[index];
if (index > myColors.length) {
clearTimeout(timer);
}
} |
Разликата е ето тук: timer=setTimeout('lele(' + (index+1) + ', "'+kk+'")', 20); Аз лично бих го направил по този начин: function lele(index, element) {
if (index === '') index = 0;
if (index < myColors.length) {
timer=setTimeout('lele(' + (index + 1)+ ',"' +element+'")', 20);
document.getElementById(element).style.backgroundColor=myColors[index];
}
} |
Една препоръка - увеличи междинните цветове на избледняването (повече елементи в масива). Май по ме радва. Експериментирах с разни цветове, брой междинни преливания и времетраения, но не знам точно какъв ефект гониш. Готин ефект, и идеята за рекурсивна фукнция е много добра. Успех | | phrozencrewПет, 10.08.07, 15:39 |
insecteater, много благодаря! Твоя код е много ми харесва и ще използвам него. За елементите в масива си прав, че е добре да са повече и аз така и ги бях направил, но за да не се разтяга много темата ги посмалих. Иначе ето какво исках да получа и стана благодарение на теб: http://web-making.hit.bg/psevdoflash/psevdoflash_js2.htmlМисля си тази техника да я използвам и на друго място, но да заместя елементите с картинки. Това ще забави зареждането, но пък дава много добри идеи. Живи и здрави! | | anonymousПет, 10.08.07, 16:41 |
П-ф-у-у-у, най-после една човешка тема в тоя форум. Phrozen, ако го направиш с картинки дай един линк към резултата. Интересно ми е как ще изглежда. А иначе ефекта е готин, смятам и аз да си го добавя в колекцията от скриптчета, ако няма copyright разбира се | | frozenbloodСъб, 11.08.07, 10:39 |
Здрасти, като отворя сайта с IE 7 footer-а ми излиза леко изместен вдясно. Не знам дали така си го замислил. Ето картинка :
Картинка 1 : IE 7 Edit : така като гледам може би имаш таблица, хедъра ти е да речем в един Table Row с Colspan = "x", а отдолу си забравил да сложиш Colspan или нещо такова, което предизвиква този overlap. А може това да е някакво странно дизайнерско решениие ? Edit 2 : Фейдинга ти ми харесва ! Поздрави, Павел | | anonymousПон, 13.08.07, 17:20 |
A мога ли да попитам с коя програма правиш JScripta . | | phrozencrewНед, 03.02.08, 18:41 |
Леле, случайно попаднах на тази тема от google и видях, че и имало и още хора, които са писали. frozenblood, на това за което си пуснал скриншотa отдавна му намерих хака :) Решението е с: Можеш да отвориш втория вариант и да погледнеш как е станало след помощта на insecteater. Но мисля, че е по интересен 3-тият вариант в който добавих и леко отместване на линковете в "Меню с отместване":
JavaScript Dom padding menu effect Ето и линкче към страницата с демото: http://web-making.hit.bg/psevdoflash/index.html strika, за редактиране на JavaScripta съм използвал Notepad++ Новата версия е наистина уникална с плъгина за функциите. | | Коментар |