download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Проба за имитацдия на 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
Картинка 1 : IE 7

Edit : така като гледам може би имаш таблица, хедъра ти е да речем в един Table Row с Colspan = "x", а отдолу си забравил да сложиш Colspan или нещо такова, което предизвиква този overlap.

А може това да е някакво странно дизайнерско решениие ?

Edit 2 : Фейдинга ти ми харесва !

Поздрави,
Павел

редактиран от frozenblood на 11.08.07 10:41
редактиран от frozenblood на 11.08.07 10:42
anonymous
Пон, 13.08.07, 17:20
A мога ли да попитам с коя програма правиш JScripta .
phrozencrew
Нед, 03.02.08, 18:41
Леле, случайно попаднах на тази тема от google и видях, че и имало и още хора, които са писали.
frozenblood, на това за което си пуснал скриншотa отдавна му намерих хака :) Решението е с:
left: 0px;

Можеш да отвориш втория вариант и да погледнеш как е станало след помощта на insecteater.
Но мисля, че е по интересен 3-тият вариант в който добавих и леко отместване на линковете в "Меню с отместване":

JavaScript Dom padding menu effect
JavaScript Dom padding menu effect

Ето и линкче към страницата с демото:
http://web-making.hit.bg/psevdoflash/index.html

strika, за редактиране на JavaScripta съм използвал Notepad++ Новата версия е наистина уникална с плъгина за функциите.

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.