Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт вывода кликовых объявлений, для движков форума 
:(
    Опции темы
Ghirik
Дата 20.12.2007, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Долго ломал голову как выводить объявления в форуме. Пытался сделать плавающюю башню с левой стороны, сильно заужает - страницу. Пробовал крепить горизонтальный блок, и делать плавное возвращение на место - сильно мозолит глаза. Да много чего пробовал, вот более-мение приемлемый вариант:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title block</title>
<style type="text/css">
<!--
body { padding: 0; margin: 0; }
-->
</style>
<script type="text/javascript">
<!--
var advStep = 2; // Шаг изменения прозрачности
var advSpeedAppearance = 20; // Скорость появления рекламного блока (зависит от advStep).
var advInitPosition = advAdjPosition = 5; // Отступ от верхнего/нижнего края(px).
var advDeadZone = 100; // Значение прокрутки, с которого начинает появляться рекламный блок (px).
var advWidth = 95 // Ширина рекламного блока (проценты).
var advHeight = 60; // Высота рекламного блока (px).
var adv, advC, advOldScroll, advCourse = 1;
scrollTop = function () {
    return document.documentElement.scrollTop;
}
clientHeight = function () {
    if (window.opera) {
        if (document.documentElement.clientHeight < document.body.clientHeight) {
        adv.setAttribute("border", "1px")
        return document.documentElement.clientHeight;
        }
        else {
        return document.body.clientHeight;
        }
    }
    else {
    return document.documentElement.clientHeight;
    }
}
function on() {
    adv = document.getElementById("adv");
    adv.filters ? adv.style.filter = "alpha(opacity = 0)" : adv.style.opacity = 0;
    advWidth = Math.floor(document.documentElement.clientWidth*advWidth/100);
    adv.style.width = advWidth + "px";
    adv.style.left = (document.documentElement.clientWidth - advWidth)/2 + "px";
    adv.style.height = advHeight + "px";
    clientHeight();
}
function scrolling() {
    adv = document.getElementById("adv");
    if (window.tm1) window.clearInterval(window.tm1);
    if (window.tm2) window.clearInterval(window.tm2);
    if (scrollTop() < advDeadZone) {
        adv.style.display = "none";
        return;
    }
    adv.filters ? adv.style.filter = "alpha(opacity = 0)" : adv.style.opacity = 0;
    advC = 0;
    if (advOldScroll > scrollTop()) {
        advAdjPosition = scrollTop() + clientHeight() - advHeight - advInitPosition;
        if (advCourse == 1) {
            adv.style.top = advAdjPosition + advHeight*3 + "px";
            advCourse = 0;
        }
    }
    if (advOldScroll < scrollTop()) {
        advAdjPosition = advInitPosition + scrollTop();
        if (advCourse == 0) {
            adv.style.top = advAdjPosition - advHeight*2 + "px";
            advCourse = 1;
        }
    }
    window.tm1 = setInterval("advOpacity()", advSpeedAppearance);
    window.tm2 = setInterval("adjPos()", advSpeedAppearance);
    advOldScroll = scrollTop();
}
function adjPos() {
    if(adv.offsetTop != advAdjPosition) {
        add = .1 * (advAdjPosition - adv.offsetTop);
        add > 0 ? add = Math.ceil(add) : add = Math.floor(add);
        adv.style.top = adv.offsetTop + add + "px";
    }
    else {
    window.clearInterval(window.tm2);
    }
}
function advOpacity() {
    adv.style.display = "";
    advC += advStep;
    adv.filters ? adv.filters.alpha.opacity = advC : adv.style.opacity = advC/100;
    if (advC >= 100) {
        adv.filters ? adv.filters.alpha.opacity = 100 : adv.style.opacity = 1;
        window.clearInterval(window.tm1);
    }
}
window.onload = on;
window.onscroll = scrolling;
//-->
</script>
</head>
<body>
    <table id="adv" style="position: absolute; display: none" cellpadding="0" cellspacing="0" bgcolor="#6262FF">
        <tr>
            <td>
            <p align="center"><b><font size="5" color="#FFFFFF">Текст объявления</font></b></p>
            </td>
            <td>
            <p align="center"><b><font size="5" color="#FFFFFF">Текст объявления</font></b></p>
            </td>
        </tr>
    </table>
<div align="center">
<table id="title" style="border: 1px solid #0000FF; height: 100px" width="95%" cellpadding="0" cellspacing="0">
    <tr>
        <td align="center">
        <b><font face="Arial" size="7"><a href="index.htm">Title</a></font></b>
        </td>
    </tr>
</table>
</div>
<p>Много текста, который будет  скроллиться (размножить до нужного объема)Много 
текста, который будет скроллиться (размножить до нужного объема)Много текста, 
который будет скроллиться (размножить до нужного объема)Много текста, который 
будет скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)
</p>
</body>
</html>


Используйте други... smile 

В этом посте будет всегда лежать последняя версия скрипта, уже лежит... И все баги, обсуждаемые ниже, могут быть уже исправлены.

Есть один недостаток, скрипт кривенько работает в Опере, но надеюсь мы, совместными усилиями быстренько поправим этот вопрос.

Проблема в Опере с отображением бордюра, если border="1", то всё нормально, а если border="0", то таблица выезжает, но сстановится видимой скачком. Хотя, свойство style.opacity изменяется плавно.



Это сообщение отредактировал(а) Ghirik - 22.12.2007, 17:13


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
SelenIT
Дата 20.12.2007, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Проверил в 9-й опере, глюков отображения не заметил. Но заметил другую неприятность - если обновить проскролленую страницу, сразу вываливается ошибка "message: Statement on line 30: Could not convert undefined or null to object  Line 30 of inline#1 script in ..." (в FF тоже ошибка - "adv has no properties, line 40").

Это сообщение отредактировал(а) SelenIT - 20.12.2007, 23:18


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 20.12.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Это наверное связано с глобальным объявлением 
Код

var adv = document.getElementById('adv');

У меня такое то же было, но наоборот после обновление ошибка исчезала, надо поразбираться...


Цитата

Проверил в 9-й опере, глюков отображения не заметил.


Я смотрю в Опере 9.5

Добавлено @ 23:33
Вот так ошибка в Mozilla исчезает.

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title block</title>
<style type="text/css">
<!--
body { padding: 0; margin: 0; }
-->
</style>
<script type="text/javascript">
<!--
var advStep = 2; // Шаг изменения прозрачности
var advSpeedAppearance = 20; // Скорость появления рекламного блока (зависит от advStep).
var advInitPosition = advAdjPosition = 0; // Отступ от верхнего/нижнего края(px).
var advDeadZone = 100; // Значение прокрутки, с которого начинает появляться рекламный блок (px).
var advWidth = 95 // Ширина рекламного блока (проценты).
var advHeight = 60; // Высота рекламного блока (px).
var adv, advC, advOldScroll, advCourse = 1;
//var adv = document.getElementById('adv');
scrollTop = function () {
    return document.documentElement.scrollTop;
}
$ = function (id) {
    return document.getElementById(id);
}
function on() {
    $("adv").filters ? $("adv").style.filter = "alpha(opacity = 0)" : $("adv").style.opacity = 0;
    $("adv").style.display = "none";
    advWidth = Math.floor(document.documentElement.clientWidth*advWidth/100);
    $("adv").style.width = advWidth + "px";
    $("adv").style.left = (document.documentElement.clientWidth - advWidth)/2 + "px";
    $("adv").style.height = advHeight + "px";
}
function scrolling() {
    if (window.tm1) window.clearInterval(window.tm1);
    if (window.tm2) window.clearInterval(window.tm2);
    if (scrollTop() < advDeadZone) {
        $("adv").style.display = "none";
        return;
    }
    $("adv").filters ? $("adv").style.filter = "alpha(opacity = 0)" : $("adv").style.opacity = 0;
    advC = 0;
    if (advOldScroll > scrollTop()) {
        advAdjPosition = scrollTop() + document.documentElement.clientHeight - advHeight - advInitPosition;
        if (advCourse == 1) {
            $("adv").style.top = advAdjPosition + advHeight*3 + "px";
            advCourse = 0;
        }
    }
    if (advOldScroll < scrollTop()) {
        advAdjPosition = advInitPosition + scrollTop();
        if (advCourse == 0) {
            $("adv").style.top = advAdjPosition - advHeight*2 + "px";
            advCourse = 1;
        }
    }
    window.tm1 = setInterval("advTime()", advSpeedAppearance);
    window.tm2 = setInterval("adjPos()", advSpeedAppearance);
    advOldScroll = scrollTop();
}
function adjPos() {
    if($("adv").offsetTop != advAdjPosition) {
        add = .1 * (advAdjPosition - $("adv").offsetTop);
        add > 0 ? add = Math.ceil(add) : add = Math.floor(add);
        $("adv").style.top = $("adv").offsetTop + add + "px";
    }
    else {
    window.clearInterval(window.tm2);
    }
}
function advTime() {
    $("adv").style.display = "";
    advC += advStep;
    $("adv").filters ? $("adv").filters.alpha.opacity = advC : $("adv").style.opacity = advC/100;
    if (advC >= 99) {
        $("adv").filters ? $("adv").filters.alpha.opacity = 100 : $("adv").style.opacity = 1;
        window.clearInterval(window.tm1);
    }
}
window.onload = on;
window.onscroll = scrolling;
//-->
</script>
</head>
<body>
    <table id="adv" style="position: absolute; display: none" bgcolor="#00FFFF" border="1">
        <tr>
            <td>&nbsp;
            </td>
            <td>&nbsp;
            </td>
        </tr>
    </table>
<div align="center">
<table id="title" style="height: 100px" width="95%" border="1" cellspacing="0" cellpadding="0">
    <tr>
        <td align="center">
        <b><font face="Arial" size="7"><a href="index.htm">Title</a></font></b>
        </td>
    </tr>
</table>
</div>
<p>Много текста, который будет скроллиться (размножить до нужного объема)Много 
текста, который будет скроллиться (размножить до нужного объема)Много текста, 
который будет скроллиться (размножить до нужного объема)Много текста, который 
будет скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)
</p>
</body>
</html>
 

SelenIT, Вы наверное не изменили border="1" на border="0", когда смотрели в Опере.

Это сообщение отредактировал(а) Ghirik - 20.12.2007, 23:49


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
SelenIT
Дата 20.12.2007, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(Ghirik @  20.12.2007,  23:22 Найти цитируемый пост)
Вы наверное не изменили border="1" на border="0", когда смотрели в Опере.

Ой, а ведь и точно... )

Добавлено через 1 минуту и 27 секунд
Убрал бордер - с виду все нормально. Опера 9.21.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 21.12.2007, 00:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Забавно,  smile  в Опере 9.5 глюк, при том, если даже оставляю атрибут border="1", а стилями устанавливаю бордюр с толшиной "0", то так же глючит.

Сейчас гляну Оперой портабле 9.2.

Ха! Что-то я рано проникся уважением к этому браузеру. smile 
Портабле, вообще, выводит табличку только сверху, при скролинге вниз, а при скроллинге вверх таблица остается за экраном. Видимо не понимает document.documentElement.clientHeight.

Это сообщение отредактировал(а) Ghirik - 21.12.2007, 00:13


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
SelenIT
Дата 21.12.2007, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Хех, а я и не заметил даже, что оно должно и снизу выезжать). Только после этого поста обнаружил такое в FF. Тогда согласен, глюк в Опере есть. Похоже, проблема со scrollTop-ом, причем какая-то очень забавная - при скроллинге вверх ползунок начинает сам собой отъезжать вниз, будто что-то (надо полагать, выезжающая табличка;) расталкивает верхнюю часть страницы. Сегодня, к сожалению, нет времени копаться, завтра посмотрю повнимательнее...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 21.12.2007, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Попробовал вывести в цикле свойства document.documentElement в Опере портабле, она мне выдала километр всяких функций, столько наверное даже во всей винде нет.  smile 
Но при этом вначале разглядел, что она клиентской частью считает реальный размер документа, а не видимую область. От сюда и глюк.

Вряд ли получится не раздувая скрипт поддержать все релизы Оперы, наверное стоит добиться нормального отображения без бордюра в Опере 9.2-9.5 и на этом успокоиться. Я днем выспался, так что сейчас ещё поковыряю малость...

Это сообщение отредактировал(а) Ghirik - 21.12.2007, 00:36


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Ghirik
Дата 21.12.2007, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Цитата

Хех, а я и не заметил даже, что оно должно и снизу выезжать

Собственно, есть надежда, что такой способ вывода объявлений не будет сильно мозолить глаза. Когда человек крутит скрол вниз, он как правило вниз и смотрит, а объявление появляется сверху. И наоборот... Когда скроллинг доходит до шапки страницы объявление не появляется, давая возможность спокойно выбирать пункты меню. Отказаться совсем от использования кликовых объявлений сложно, сайт должен приносить прибыль.

Это сообщение отредактировал(а) Ghirik - 21.12.2007, 00:53


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Ghirik
Дата 21.12.2007, 06:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Сколько не мучал оперу, так и не смог найти нормальное решение проблемы.
Дурацкому браузеру - дурацкий бордюр! P.S. Это я в сердцах бросил  smile 
Вот код с бордюром для оперы:
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru"> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Title block</title>
<style type="text/css">
<!--
body { padding: 0; margin: 0; }
-->
</style>
<script type="text/javascript">
<!--
var advStep = 2; // Шаг изменения прозрачности
var advSpeedAppearance = 20; // Скорость появления рекламного блока (зависит от advStep).
var advInitPosition = advAdjPosition = 5; // Отступ от верхнего/нижнего края(px).
var advDeadZone = 100; // Значение прокрутки, с которого начинает появляться рекламный блок (px).
var advWidth = 95 // Ширина рекламного блока (проценты).
var advHeight = 60; // Высота рекламного блока (px).
var adv, advC, advOldScroll, advCourse = 1;
//var adv = document.getElementById('adv');
scrollTop = function () {
    return document.documentElement.scrollTop;
}
$ = function (id) {
    return document.getElementById(id);
}
function on() {
    $("adv").filters ? $("adv").style.filter = "alpha(opacity = 0)" : $("adv").style.opacity = 0;
    $("adv").style.display = "none";
    advWidth = Math.floor(document.documentElement.clientWidth*advWidth/100);
    $("adv").style.width = advWidth + "px";
    $("adv").style.left = (document.documentElement.clientWidth - advWidth)/2 + "px";
    $("adv").style.height = advHeight + "px";
    if(window.opera) $("adv").setAttribute("border", "1px");
}
function scrolling() {
    if (window.tm1) window.clearInterval(window.tm1);
    if (window.tm2) window.clearInterval(window.tm2);
    if (scrollTop() < advDeadZone) {
        $("adv").style.display = "none";
        return;
    }
    $("adv").filters ? $("adv").style.filter = "alpha(opacity = 0)" : $("adv").style.opacity = 0;
    advC = 0;
    if (advOldScroll > scrollTop()) {
        advAdjPosition = scrollTop() + document.documentElement.clientHeight - advHeight - advInitPosition;
        if (advCourse == 1) {
            $("adv").style.top = advAdjPosition + advHeight*3 + "px";
            advCourse = 0;
        }
    }
    if (advOldScroll < scrollTop()) {
        advAdjPosition = advInitPosition + scrollTop();
        if (advCourse == 0) {
            $("adv").style.top = advAdjPosition - advHeight*2 + "px";
            advCourse = 1;
        }
    }
    window.tm1 = setInterval("advOpacity()", advSpeedAppearance);
    window.tm2 = setInterval("adjPos()", advSpeedAppearance);
    advOldScroll = scrollTop();
}
function adjPos() {
    if($("adv").offsetTop != advAdjPosition) {
        add = .1 * (advAdjPosition - $("adv").offsetTop);
        add > 0 ? add = Math.ceil(add) : add = Math.floor(add);
        $("adv").style.top = $("adv").offsetTop + add + "px";
    }
    else {
    window.clearInterval(window.tm2);
    }
}
function advOpacity() {
    $("adv").style.display = "";
    advC += advStep;
    $("adv").filters ? $("adv").filters.alpha.opacity = advC : $("adv").style.opacity = advC/100;
    if (advC >= 100) {
        $("adv").filters ? $("adv").filters.alpha.opacity = 100 : $("adv").style.opacity = 1;
        window.clearInterval(window.tm1);
    }
}
window.onload = on;
window.onscroll = scrolling;

function qwe() {
    obj = $("adv").style;
    var result = "The properties for the " + obj + " object:" + "<br>";
    for (var i in obj) {
        result += i + " = " + obj[i] + "<br>";
    }
        document.body.innerHTML=result+'<br>'
}

//-->
</script>
</head>
<body>
    <table id="adv" style="position: absolute; display: none" cellpadding="0" cellspacing="0" bgcolor="#0000FF">
        <tr>
            <td>erterterterterterter
            </td>
            <td>ertertertertertertert
            </td>
        </tr>
    </table>
<div align="center">
<table id="title" style="border: 1px solid #0000FF; height: 100px" width="95%" cellpadding="0" cellspacing="0">
    <tr>
        <td align="center">
        <b><font face="Arial" size="7"><a href="index.htm">Title</a></font></b>
        </td>
    </tr>
</table>
</div>
<p>Много текста, который будет скроллиться (размножить до нужного объема)Много 
текста, который будет скроллиться (размножить до нужного объема)Много текста, 
который будет скроллиться (размножить до нужного объема)Много текста, который 
будет скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)Много текста, который будет 
скроллиться (размножить до нужного объема)
</p>
</body>
</html>


Это сообщение отредактировал(а) Ghirik - 22.12.2007, 21:54


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
egao
Дата 21.12.2007, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



1. не стоит юзать setInterval.
2. если хочется синхронизации - выполняй все действия одним потоком, а не двумя.
PM MAIL   Вверх
Ghirik
Дата 21.12.2007, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Запускал обе функции по одному таймауту - разницы нет.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
bars80080
Дата 21.12.2007, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

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



первый и последний код у меня в ИЕ6 ошибку дали,

так и должно быть?
PM MAIL WWW   Вверх
AKS
Дата 21.12.2007, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


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

Репутация: 27
Всего: 52



Цитата(Ghirik @  20.12.2007,  23:03 Найти цитируемый пост)
Используйте други... smile 

Не повредит ли здоровью? smile
В функции on насчитал семь идентичных вызовов $("adv") вместо одного. Это шутка? ;)

PM MAIL   Вверх
SelenIT
Дата 21.12.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Цитата(egao @  21.12.2007,  08:14 Найти цитируемый пост)
1. не стоит юзать setInterval.

egao, почему?

Цитата(AKS @  21.12.2007,  12:40 Найти цитируемый пост)
семь идентичных вызовов $("adv") вместо одного. Это шутка? ;)

Ну мало ли, может, в окончательном варианте в ф-цию $ будет встроено кеширование... а это пока отладочный вариант, совмещенный с крэш-тестом ;)


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
AKS
Дата 21.12.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


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

Репутация: 27
Всего: 52



Цитата(SelenIT @  21.12.2007,  12:52 Найти цитируемый пост)
в ф-цию $ будет встроено кеширование

И как это позволит "обойти" шесть ненужных вызовов? ;)

PM MAIL   Вверх
SelenIT
Дата 21.12.2007, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Никак, но нагрузку, имхо, немного уменьшит...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 21.12.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Код

первый и последний код у меня в ИЕ6 ошибку дали,

так и должно быть? 


Нет, ошибок быть не должно. Я проверял в IE версия 6.0.2900.2180.xpsp_sp2_qfe.070227-2300

Цитата

В функции on насчитал семь идентичных вызовов $("adv") вместо одного. Это шутка? ;)


Дак это на лету было заменено adv. на $("adv").(через поиск/замена  smile ), потому как, FF и Опера, при обновлении страницы, теряли глобальное объявление. В первых постах SelenIT писал об ошибках. Сегодня переделаю.

А что, с бордюром в Опере? Нет прогрессивных мыслей?

Это сообщение отредактировал(а) Ghirik - 21.12.2007, 19:45


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
AKS
Дата 21.12.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


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

Репутация: 27
Всего: 52



Цитата(Ghirik @  21.12.2007,  19:39 Найти цитируемый пост)
А что, с бордюром в Опере? Нет прогрессивных мыслей?

Да не обращайте Вы такого пристального внимания на результат работы альфа-версии - в остальных ведь все в порядке.

PM MAIL   Вверх
Ghirik
Дата 21.12.2007, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Ну вот, теперь всё нормально.... надеюсь...  smile 
Исправил код в первом посте. Пришлось повторно сделать присвоение adv, теперь при обновлении ошибок нет.

AKS, у меня только Опера 9.5b, а что, в других без бордюра работает?

Это сообщение отредактировал(а) Ghirik - 21.12.2007, 22:20


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
AKS
Дата 22.12.2007, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


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

Репутация: 27
Всего: 52



Цитата(Ghirik @  21.12.2007,  22:17 Найти цитируемый пост)
AKS, у меня только Опера 9.5b, а что, в других без бордюра работает?

К тому, что уже было написано:
Цитата(SelenIT @  20.12.2007,  23:16 Найти цитируемый пост)
Проверил в 9-й опере, глюков отображения не заметил.

могу добавить следующее. Того, что можно наблюдать в версии 9.5 (у меня альфа), я не увидел в 9.00, 9.10, 9.22, 9.25 версиях (все под Windows XP, ранние не упоминаю, т.к. в них нет opacity).
Так что пишите разработчикам в "книгу жалоб и предложений", чтобы обратили внимание на эту особенность (мало ли - вдруг они не знают ;) ).
А пока что можно сосредоточиться на проблеме с расчетом высоты документа (для Opera), а также добавить обработку события resize окна браузера (чтобы при уменьшении окна плавающий блок уменьшался до новых размеров документа, а при открытии в маленьком окне и "развертке" окна на весь экран блок увеличивался). 


PM MAIL   Вверх
Ghirik
Дата 22.12.2007, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



AKS, если не трудно, дайте ссылку на книгу жалоб Оперы, я что то не смог найти, лазил, лазил по сайту, английский не бум бум. smile Ну а проблему, думаю, описать с тремя переводчиками смогу. 

Цитата

А пока что можно сосредоточиться на проблеме с расчетом высоты документа (для Opera), 


У меня, почему то сложилось мнение, что не стоит поддерживать старые релизы Оперы, Опера 9.5 стала понимать клиентскую зону документа через document.documentElement.clientHeight. И вроде бы они начали масштабную компанию по продвижению своего продукта. Есть надежда, что Оперу полюбит большее число ползователей, я буду этому очень рад, потому как мне лично очень симпатичен этот браузер, главным образом за правильное использование ресурсов компьютера. Да, и в новой версии у них поддерживается CSS3. Короче, нравится..... smile 

Цитата

чтобы при уменьшении окна плавающий блок уменьшался до новых размеров документа, а при открытии в маленьком окне и "развертке" окна на весь экран блок увеличивался


А нужно ли? Я этот скрипт писал исключительно для вывода кликовых объявлений, они выводятся во фреймах, разумеется без доступа, и соответственно размер фреймов изменить не получится.
Другое дело, развить этот скрипт до полной универсальности, ввести переключатели на способы появления на экране, возможность плавания за положением в клиентской зоне, переключение на горизонтальный вывод или чередование и т.д.... Короче пока не уверен по поводу слежения за размерами.

Но на счет Оперы 9 (клиентской зоны) подумаю, сейчас качну, и подумаю... Всё же, сейчас многие под ней ходят. Хотя, как неприятно поддерживать вчерашний день...  smile 




--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
AKS
Дата 22.12.2007, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


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

Репутация: 27
Всего: 52



Цитата(Ghirik @  22.12.2007,  10:58 Найти цитируемый пост)
AKS, если не трудно, дайте ссылку на книгу жалоб Оперы...

Bug Report Wizard

Цитата(Ghirik @  22.12.2007,  10:58 Найти цитируемый пост)
Короче пока не уверен по поводу слежения за размерами.

Так ведь это Вам решать. Я написал "можно", а не "нужно". ;)

PM MAIL   Вверх
Ghirik
Дата 22.12.2007, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



AKS, спасибо за ссылку.
Стал готовить подачу бага, и как всегда, оказалось баг не в бордюре, а где то в другом месте, хотя проявляется именно через бордюр. Всем всегда говорю, чтобы вычленяли из страницы проблемный кусок и выкладывали. Что мол во время вычленения можно найти причину. Так и есть, нашел... Но не баг, а отсутствие такового:

Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Title block</title>
<script type="text/javascript">
<!--
var advStep = 2;
var advSpeedAppearance = 30;
var advC = 0;
var adv;

function advProbe() {
    alert(document.getElementById("adv").getAttribute("border"))
}

function advClick(){
    adv = document.getElementById("adv");
    adv.getAttribute("border") == 0 ? adv.setAttribute("border", 1) : adv.setAttribute("border", 0)
    adv.filters ? adv.style.filter = "alpha(opacity = 0)" : adv.style.opacity = 0;
    advC = 0;
    if (window.tm1) window.clearInterval(window.tm1);
    window.tm1 = setInterval("advOpacity()", advSpeedAppearance);
}

function advOpacity() {
    adv = document.getElementById("adv");
    advC += advStep;
    adv.filters ? adv.filters.alpha.opacity = advC : adv.style.opacity = advC/100;
    if (advC >= 100) {
        adv.filters ? adv.filters.alpha.opacity = 100 : adv.style.opacity = 1;
        window.clearInterval(window.tm1);
    }
}
//-->
</script>
</head>
<body>

<table id="adv" border="1" width="100%" bgcolor="#00FF00" onclick="advClick()">
    <tr>
        <td>&nbsp;</td>
    </tr>
</table>

</body>
</html>


Покликайте по таблице, хоть с бордюром, хоть без него, всё работает... smile 
Помогите, у меня голова кругом  smile , не знаю где и искать причину.



Это сообщение отредактировал(а) Ghirik - 22.12.2007, 13:18


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
AKS
Дата 22.12.2007, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


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

Репутация: 27
Всего: 52



Цитата(Ghirik @  22.12.2007,  13:17 Найти цитируемый пост)
Помогите, у меня голова кругом  smile , не знаю где и искать причину.

Берегите голову! ;)
В head вставьте вот это:
Код

<style type='text/css'>
/*<![CDATA[*/

html {
    height:200%;
}

table {
    margin-top:50%;
}
/*]]>*/
</style>

Все будет ОК, если не "прокручивать" страничку. Если же "прокрутить" - баг предстанет во всей своей красе...


PM MAIL   Вверх
Ghirik
Дата 22.12.2007, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Ок, спасибо, отсылаю баг "оперистам"...

Отправил.

Это сообщение отредактировал(а) Ghirik - 22.12.2007, 15:33


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Ghirik
Дата 22.12.2007, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Сделал поддержку Оперы, но в 9.5 получается только с бордюром. Выложил в первом посте.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Ghirik
Дата 22.12.2007, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Цитата

Ну мало ли, может, в окончательном варианте в ф-цию $ будет встроено кеширование... 


Научите, как такое делается... В этом скрипте, может и не нужно, но у меня другие есть smile 


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
AKS
Дата 23.12.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


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

Репутация: 27
Всего: 52



Цитата(Ghirik @  22.12.2007,  21:59 Найти цитируемый пост)
Научите, как такое делается...

Видимо подразумевалось следующее:
Код

function getElemById(aId) {
    var elem = (getElemById.cache || (getElemById.cache = {}))[aId];
    return (elem || (getElemById.cache[aId] =
                        document.getElementById(aId)));
};

PM MAIL   Вверх
SelenIT
Дата 23.12.2007, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



AKS, а разве нельзя кешировать каждый объект в новое свойство самой ф-ции? Чем это хуже?
Код

function $(id) {
    return $[id] || ($[id] = document.getElementById(id));
}



--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
AKS
Дата 23.12.2007, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


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

Репутация: 27
Всего: 52



Цитата(SelenIT @  23.12.2007,  19:29 Найти цитируемый пост)
...а разве нельзя кешировать каждый объект в новое свойство самой ф-ции? Чем это хуже?

Что хуже, а что лучше я не знаю. 
Могу только предположить, что если попадется какой-нибудь элемент с "забавным" идентификатором, вроде такого:
Код

<div id='length'></div>

, то ваша $ вернет не то, что Вы ожидаете...
PM MAIL   Вверх
SelenIT
Дата 23.12.2007, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 49
Всего: 401



Упс... точно, про забавные идентификаторы не подумал :(.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Ghirik
Дата 23.12.2007, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 13
Всего: 20



Спасибо за разъяснения.
Я как раз задумался о том, чтобы использовать у всех идентификаторов префиксы. Получается удобно, можно по префиксу понять принадлежность к тому или иному участку кода, да и от конфликтов с зарезервированными названиями гарантированная защита.


--------------------
Отдадим всё клиенту, пускай его машина мучается...

PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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