Дизайн и Верстка > Обсуждение сайтов
Над дизайном этого сайта я работал 2 месяца.
mmm:
>Nickii
Да кучу вопросов, ну я не буду грузить вас, а только те задам, на которые мне не смогли ответить на форумaх:
1)как вы наверно заметил, что у меня глючит появление стрелки, которая слева плавно движеться. Просто вся трабла в обработчике события onMouseOver (или onMouseOut, onMouseMove). Все обработчики событий можно обойти всего лишь быстро переместив курсор. Можно взять за пример мой сайт. Если вы плавно переместите курсор, то событие onMouseOver и onMouseMove срабатывают правильно и вы видете стрелку. Но если вы переместите курсор быстро, то событие onMouseOver вообще не сробатывает, а onMouseMove сробатывает с опозданием (зависит от быстроты перемещения курсора), поэтому стрелка показывается не полностью, но а если вы ради прикола переместите курсор очень быстро, то стелка вовсе не появиться. Что вы можете сказать по этому поводу.
2)у одного чела в ie при просмотре первой страницы (там кстати фон как один большой jpg) за курсором бегает менюшка с предложением сохранить эту фотку (что-то вроде этого). И из-за этого ему сой сайт не понравился. Что вообще можно сделать в этом случае.
3)я не знаю как у других, но когда я просматриваю страницу анимация идёт показывается нормально, но если я начинаю двигать курсором по менюшке браузера (по граф. кнопкам, типа сохр. или отмена), то анимация показывается в ускоренном ритме. Это что, глюк моих браузеров/винды или у вас также. Если также,
то что это за ... и как от этого избавиться.
>Кстати, у тебя почему это сайт не работает под IE 5.0? Непорядок!
Ого, такой ещё надо найти. Проблема в том, что в ie 5.0 я не тестировал свой сайт, т.к. ни где его не видел. А в чём там собственно проблема.
>Какие решения можно использовать?
у меня был вариант увеличить шаг, но в опере это не помогло. Было такое впечатление, что ты играешь в nfs на страром 1 pentium\'е, т.е. создаётся такое впечатление что это не анимация,
а покадровый просмотр загрузки. Кстати, я пробывал увеличить шаг для ie и mozill\'ы, всё становиться на 3-4 сек. быстрее, но теряется эффект плавности, получается всё прерывисто и грубо, что не есть
гуд.
Nickii:
Начну издалека (если ты не против)
1) О получении ссылки на элемент
Всегда пользуйся функцией document.getElementById(id), никогда не пользуйся
конструкцией document.all(id), почему?
а). Первая указанная функция работает гораздо быстрее второй
б). Все основные броузеры поддерживающие технологию DOM(знакомо понятие?)
поддерживают первую функцию. К ним относятся такие броузеры как,
Mozilla 0.9+ (далее MZ) , Internet Explorer 5+ (далее IE), Opera 6+ точно
более ранние версии не знаю (далее OP)
Для примера одна из твоих функций переписывается так:
> function vit(name,zn){if (ie) {document.all[name].style.color=zn}
> else {if (ns6) {document.getElementById(name).style.color=zn}}}
function vit(name,zn)
{
document.getElementById(name).style.color=zn;
}
Кстати, пиши более понятно, т.е. не ленись ставить \';\' и пробелы переводы строк,
не ставь лишних \'{}\'
2) Что такое eval и с чем его едят
Как я вижу, ты знаком с функцией eval, которая интерпретирует строку как код Java
Script. Исходя из этого можно переписать минимум 5 твоих функции в одну:
( обрати внимание, что до свойств элемента можно достучаться не только:
document.getElementById("id").style.width, но и:
document.getElementById("id").style["width"] этим мы и воспользуемся)
>function vit(name,zn){if (ie) {document.all[name].style.color=zn}
>else {if (ns6) {document.getElementById(name).style.color=zn}}}
>
>function vi(name,zn){if (ie) {document.all[name].style.visibility=zn}
>else {if (ns6) {document.getElementById(name).style.visibility=zn}}}
>
>function dl(name,zn){if (ie) {document.all[name].style.left=zn}
>else {if (ns6) {document.getElementById(name).style.left=zn}}}
>
>function dw(name,zn){if (ie) {document.all[name].style.width=zn}
>else {if (ns6) {document.getElementById(name).style.width=zn}}}
>
>function dt(name,zn){if (ie) {document.all[name].style.top=zn}
>else {if (ns6) {document.getElementById(name).style.top=zn}}}
function changeStyleElement(id, property, value)
{
eval("document.getElementById(\\""+id+"\\").style")[property] = value;
}
Кстати, называй функции и переменные нормальными именами, (глядишь и аглицкий
подучишь:)) что-бы можно было по наименованиям понять о чем речь.
Как у меня например:
changeStyleElement - смена стиля элемента
id - идентификатор элемента
property - свойство стиля которое меняем
value - устанавливаемое значени
Если тебе интересно, то переделай сайт исходя из этого. Все остальное позже, если сам не догадаешся.;)
Кроме того:
--- Цитировать ---mmm:
у одного чела в ie при просмотре первой страницы (там кстати фон как один большой jpg)
--- Конец цитаты ---
У тебя это не фон. Это картинка. И у меня такаяже фигня.
Что-бы сделать это фоном воспользуйся следующими подсказками.
1) Картинку можно заранее загрузить.
2) У картинки есть свойство - complete, если оно установленно в true, то картинка загружена
3) фон можно сменить:
document.body.style.backgroundImage = "url("+загруженная_картинка.src+")";
Я думаю что мы порядком уже надоели модераторам на этом форуме, и поэтому было-бы правильнее перенести этот пост в форум Java Script. Если так пойдет далее я раскажу все что знаю.
Навигация
Перейти к полной версии