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


 




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


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

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