Модераторы: Illuminaty
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Виной всему <DOCTYPE> 
:(
    Опции темы
Black
  Дата 3.6.2005, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 15
Всего: 45



Виной всему эта строчка:

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">

Она не позволяет нормально работать методу scrollTop.
Значения то метод возвращает, а вот динамически их менять нельзя, тем самым не получается заставить scroll прокручиваться по щучьему велению, по моему хотению.

Если

<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">

убрать, то все работает как я хочу.

Ну и что сделать. Хочется то держать стандарт, т.е. DOCTYPE хочется оставить в документе.
Хотя руки уже чешутся его удалить. Из-за него я потерял 2 часа. Так как не мог понять почему ничего не работает???

P.S. на форуме scroll в последнее время обсуждают smile после того как XMLHttpRequest постирали.
Теперь и scroll постираем.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Black
Дата 3.6.2005, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 15
Всего: 45



Все равно ничего не пойму...

Такая констукция работает:

Код

<script type="text/javascript">
<!--
var d=document.getElementById("test");
var tmr=window.setInterval(function() {
 d.scrollTop+=3;
}, 1000);
//-->
</script>


а такая нет:

Код

<script type="text/javascript">
<!--
var d=document.getElementById("test");
var tmr=window.setInterval(function() {
 d.scrollTop==d.scrollHeight;
}, 1000);
//-->
</script>


d.scrollTop==d.scrollHeight - разве так нельзя писать ????
Добавлено @ 15:25
О придумал

Код

d.scrollTop+=d.scrollHeight;


так работает smile

Это сообщение отредактировал(а) PHP-DIRECTOR - 3.6.2005, 15:23


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Sardar
Дата 3.6.2005, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 6
Всего: 317



Просто парни из W3C иногда такую муть придумают, по началу не логично, но если следовать их мысли, то в целом "принять можно".

Хотя писать в Quirksmode (режим совместимости, без доктайпа) не стоит, нет уверенности что во всех браузерах будет одинакого выглядеть. Хотя и с доктайпом разные бродилки рендерят по разному smile
Интересно что с каждой новой спецификацией (X)HTML отменяют всё больше тегов и аттрибутов smile Сейчас можно весь сайт сверстать юзая div, span + стили, т.е. отрисовать это можно, но структуры в документе не будет.

О скроле, скрол будет работать без проблем, но только не для body(забыл по чему, но было логичное обьяснение smile ). Скорее всего ошибка в скрипте, выкладывай код.
Добавлено @ 15:27
Цитата(PHP @ 3.6.2005, 14:20)
d.scrollTop==d.scrollHeight - разве так нельзя писать ????
Добавлено @ 14:25

Это сравнение, а не присваивание smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Black
Дата 3.6.2005, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 15
Всего: 45



Sardar

Цитата
Хотя писать в Quirksmode (режим совместимости, без доктайпа) не стоит, нет уверенности что во всех браузерах будет одинакого выглядеть.

т.е. надо убирать тег <DOCTYPE> для страниц содержащих много JavaScript'ов

Цитата
Это сравнение, а не присваивание

и правда... с этим доктайпом у меня уже глюки пошли. Пойду ударюсь головой об стенку может поможет smile

Цитата
весь сайт сверстать юзая div, span + стили smile

я свой сайт тоже на слоях сделал. Использовал три тега

Код

<div></div>
<img />
<br />

+ CSS
Получилось без JavaScript'a

На дивах хорошо сделан сайт:
http://www.softbeta.com/
и
http://hunter.vingrad.ru/



-------------------------
теперь скрипт:

Код

function NewMess()
{
            Chat = top.chat.document.getElementById('chat');
            Chat.scrollTop=Chat.scrollHeight;
}


запускается всякий раз когда приходят новые сообщения в чат

chat - фрейм в котором лежит окно куда пишутся фразы.
chat - название id для div'a куда добавляются сообщения чата.


Содержимое фрейма chat:

Код

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>разные там</style>
<script>разные там</script>
</head>

<body>

<div style='position:relative;width:100%;height:100%;overflow:auto;' id='chat'></div>

</body>
</html>


Если без доктупе, то все работает, а если с ним, то нет эффекта smile

Это сообщение отредактировал(а) PHP-DIRECTOR - 3.6.2005, 16:03


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Sardar
Дата 3.6.2005, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 6
Всего: 317



Цитата(PHP @ 3.6.2005, 15:00)
т.е. надо убирать тег <DOCTYPE> для страниц содержащих много JavaScript'ов

Наоборот, и при чём здесь "много скриптов" ?
Цитата(PHP @ 3.6.2005, 15:00)
я свой сайт тоже на слоях сделал. Использовал три тега

Да, получилась хорошая инфа как оторбразить контент, но структуры нет(попробуй распарсить такой документ и вывести summary, поймёшь о чём я)

По поводу чата, крути не окно chat, а вложи туда ещё слой и в этот слой клади мессаги. Изменяй scrollTop этого вложеного слоя.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Иль
Дата 3.6.2005, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: нет
Всего: 14



PHP-DIRECTOR, дело не в скрипте, а как им пользоватьсяю. Если я не ошибаюсь, ты глюк ловишь только в Gecko, правильно? Просто эта группа браузеров имеет два режима работы, их можно назвать режим ИЕ без <DOCTYPE> и режим W3C, те полного соответствия стандартам - называется "ничего знать не желаю и про какой-то ИЕ вообще не слышал". Сами Мазиловцы говорят что если хорошо намутить, то например FX(лиса) сама свалится в режим ИЕ, хотя на практике я не встречал.
Если что не так - поправте...

А вообще в ИЕ у меня глюк с <DOCTYPE> еще не разу не проявлялся - у вас есть другие данные?

Давайте здесь сложим все встретившиеся с ним глюки.

Это сообщение отредактировал(а) Иль - 3.6.2005, 17:31


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Aliance
Дата 3.6.2005, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 2
Всего: 137



Цитата
А вообще в ИЕ у меня глюк с <DOCTYPE> еще не разу не проявлялся - у вас есть другие данные?

У меня пару раз... в исключительных ситуациях... остальными браузерами не пользуюсь :-)

Нужно Quirksmode почитать... может там что есть..
PM MAIL WWW ICQ Skype   Вверх
Black
Дата 3.6.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 15
Всего: 45



Иль
в IE с <DOCTYPE> тоже не работает.

Я так понимаю свойства scrolla'а являются устаревшими и работают в режиме совместимости со старыми браузерами а не со стандартами от W3C

А стандарты включаются при использовании <DOCTYPE>


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Иль
Дата 3.6.2005, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: нет
Всего: 14



Ничего себе, не знал. Хорошо что сказал!


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Sardar
Дата 3.6.2005, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 6
Всего: 317



Цитата(PHP @ 3.6.2005, 20:55)
свойства scrolla'а являются устаревшими

Вроде бы устаревшими они не являються и нормально работают с доктайпами и без, правда требуют подхода, например body скролиться не будет smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Иль
Дата 3.6.2005, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: нет
Всего: 14



Да я тоже думаю, что ИЕ плювать на доктайпы
Добавлено @ 22:54
по опыту конечно. Сейчас то уже по очереди тестируешь, а раньше наработаеш в ИЕ и проверяешь в Gecko, так сто раз на этом доктайпе горел, до белого коленя доходил. Еще про JS не знал ничего, а уже научным тыком вывел - убираем доктайпы


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Black
Дата 3.6.2005, 23:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 15
Всего: 45



Иль
Sardar
Все верно говорил Sardar.

Методы не устаревшие и работают. Моя ошибка была как всегда в самом элементарном.
Для div'a я установил height в процентах - поэтому и не работало.

Если я укажу значение в px тогда работает.
Т.е. надо так:

position:relative;height:100px;overflow:auto;

но не так:

position:relative;height:100%;overflow:auto;

Теперь работает и с <DOCTYPE>
Проверил в IE 6.0 и в FireFox 1.0.4


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Opik
Дата 4.6.2005, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



PHP-DIRECTOR
а если нужно именно 100%? smile
PM MAIL Skype   Вверх
Black
Дата 4.6.2005, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 15
Всего: 45



Opr
вот в этом и проблема. Сейчас пытаюсь скриптом выяснять размер окна и ставить этот размер в стиль к диву где содержится сообщения чата.

Мне то тоже надо 100%. А с ним почему-то не работает smile

Если получится выложу код.


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Вёрстка веб-сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.