Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Динамическая подсказка (JavaScript) и проблемы ее показа....

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
kukuikar



Зарегистрирован: 23.02.2005
Сообщения: 30
Откуда: Москва

СообщениеДобавлено: Вт Мар 01 2005 17:42    Заголовок сообщения: Динамическая подсказка (JavaScript) и проблемы ее показа.... Ответить с цитатой

Помогите.
Незнаю в чем проблема. Функция вызывает подсказку и она следует за мышью. По крайней мре должна. Все работает когда документ не проскороллен. Как только документ сдвинется вниз. подсказка уходит наверх независимо от координат мыши. Я учел document.body.scrollTop(Left), почему-то все равно не работает. Сломал все свои мозги Shocked . Если сделать статичный HTML все ок, а в PHP проблемы.

Помогите кто чем может. Заранее спасибо.
Это JavaScript
Код:

function ShowTip (v) {
if (document.all[v]) {
var sw = document.body.clientWidth;
var sh = document.body.clientHeight;
var dw = document.all[v].clientWidth;
var dh = document.all[v].clientHeight;
var cx = self.event.clientX;
var cy = self.event.clientY;
            
document.all[v].style.top=cy-document.body.scrollTop;
document.all[v].style.left=cx+document.body.scrollLeft;
document.all[v].style.visibility='visible';
}
}
function HideTip (v) {
if (document.all[v]) {
document.all[v].style.visibility='hidden';
}
}


Далее у меня идет PHP:

Код:

$conn = db();
if (!$conn)
    die(error_msg('Невозможно соединиться с БД'));

    $result = mysql_query('SELECT * FROM products WHERE category='.$id);
    if (!$result)
        die(error_msg("Невозможно выполнить запрос. повторите попытку позже."));
       
    $num_rows = mysql_num_rows($result);
    if ($num_rows > 0)
        {
        ?>
        <table class="tbl" cellpadding="4" cellspacing="0" border="1" width="90%" align="CENTER">
        <th class="tbl" width="10%">№№</th>
        <th class="tbl" width="42%">Наименование</th>
        <th colspan="2" class="tbl">Описание</th>
        <?php
        for ($i = 0; $i < $num_rows; $i++)
            {
            $k = $i + 1;
            $row = mysql_fetch_array($result);
            $id_p = htmlspecialchars(stripslashes($row['id']));
            $name_p = htmlspecialchars(stripslashes($row['name']));
            if (htmlspecialchars(stripslashes($row['description'])) <> '')
                $des = htmlspecialchars(stripslashes($row['description']));
            else
                $des = '&nbsp;';
            $artikul = get_cat($id_p).'-'.$id_p.'/'.$k;
            ?>
            <tr onmousemove="ShowTip('tip<?=$id_p ?>')" bgcolor="#297CFA" onclick="window.location.href='catalog.php?id=<?=$id."&" ?>new=<?=$id_p ?>'"
            onmouseover="this.style.background='#8DBAFC',
            window.status='http://www.svetplus.ru/catalog.php?id=<?=$id."&" ?>new=<?=$id_p ?>'; return true"
            onmouseout="this.style.background='#297CFA', HideTip('tip<?=$id_p ?>')" style="CURSOR: hand">
                <td width="10%" class="tbl" valign="CENTER" align="CENTER" class="catalog"><?=$artikul ?></td>
                <td class="tbl" class="catalog"><?=$name_p ?></td>
                <td class="tbl" class="catalog"><?=$des ?></td>
            </tr>
            <?php
            }
        echo '</table>';
        }
        ////////////////////////////////////////////////
        $result = mysql_query('SELECT * FROM products WHERE category='.$id);
        $num_rows = mysql_num_rows($result);
        if ($num_rows > 0)
        {
        for ($i = 0; $i < $num_rows; $i++)
            {
            $row = mysql_fetch_array($result);
            $id_p = htmlspecialchars(stripslashes($row['id']));
            $name_p = htmlspecialchars(stripslashes($row['name']));
            ?>
            <DIV id="tip<?=$id_p ?>" style="VISIBILITY: hidden; POSITION: absolute">
            <TABLE cellSpacing=0 cellPadding=3 width="200" border=0 style="border:1px solid #000000">
            <TR><TD bgColor=#ffffe1><?=$name_p ?></B>
            </TD></TR></TABLE></DIV>
            <?php
            }
        /////////////////////////////////////////////////
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
kukuikar



Зарегистрирован: 23.02.2005
Сообщения: 30
Откуда: Москва

СообщениеДобавлено: Пт Мар 04 2005 14:31    Заголовок сообщения: Ответить с цитатой

Господа, прошу, ну хоть какие-нибудь мысли...
_________________
Жить хорошо...
А хорошо жить еще лучше...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
kukuikar



Зарегистрирован: 23.02.2005
Сообщения: 30
Откуда: Москва

СообщениеДобавлено: Вт Апр 19 2005 13:18    Заголовок сообщения: Ответить с цитатой

Может ошибка здесь?

Код:
function ShowTip (v) {
if (document.all[v]) {
var sw = document.body.clientWidth;
var sh = document.body.clientHeight;
var dw = document.all[v].clientWidth;
var dh = document.all[v].clientHeight;
var cx = self.event.clientX;
var cy = self.event.clientY;
             
document.all[v].style.top=cy-document.body.scrollTop;
document.all[v].style.left=cx+document.body.scrollLeft;
document.all[v].style.visibility='visible';
}
}
function HideTip (v) {
if (document.all[v]) {
document.all[v].style.visibility='hidden';
}
}

_________________
Жить хорошо...
А хорошо жить еще лучше...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Витал



Зарегистрирован: 09.08.2004
Сообщения: 73

СообщениеДобавлено: Пт Апр 22 2005 07:57    Заголовок сообщения: Ответить с цитатой

а можешь показать сгенеренный хтмл,может чем помогу,хотя не обещаю,а то с пхп не оченьSad
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail
kukuikar



Зарегистрирован: 23.02.2005
Сообщения: 30
Откуда: Москва

СообщениеДобавлено: Вт Ноя 15 2005 14:54    Заголовок сообщения: Ответить с цитатой

Сгенерированный упрощенный HTML. Все равно не работает. В PHP нет ошибки.

IE document.body.scrollTop выдает 0 даже если прокрутить страницу вниз.

Opera выдает правильное значение document.body.scrollTop, только при прокрутке все равно подсказки смещаются вверх.

Код:
<!doctype html public "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
  <title>Untitled web-page</title>
 
<script>
function ShowTip (v) {
if (document.all[v]) {
var sw = document.body.clientWidth;
var sh = document.body.clientHeight;
var dw = document.all[v].clientWidth;
var dh = document.all[v].clientHeight;
var cx = self.event.clientX;
var cy = self.event.clientY;

document.all[v].style.top=cy-document.body.scrollTop;
document.all[v].style.left=cx+document.body.scrollLeft;
document.all[v].style.visibility='visible';
}
}

function HideTip (v) {
if (document.all[v]) {
document.all[v].style.visibility='hidden';
}
}

</script>

</head>
<body>

<table border="1">
<tr onmousemove="ShowTip('tip01')" onmouseout="HideTip('tip01')">
<td width="200" height="200">Подсказка №1</td>
</tr>
<tr onmousemove="ShowTip('tip02')" onmouseout="HideTip('tip02')">
<td width="200" height="200">Подсказка №2</td>
</tr>
<tr onmousemove="ShowTip('tip03')" onmouseout="HideTip('tip03')">
<td width="200" height="200">Подсказка №3</td>
</tr>
<tr onmousemove="ShowTip('tip04')" onmouseout="HideTip('tip04')">
<td width="200" height="200">Подсказка №4</td>
</tr>
<tr onmousemove="ShowTip('tip05')" onmouseout="HideTip('tip05')">
<td width="200" height="200">Подсказка №5</td>
</tr>
</table>


<DIV id="tip01" style="VISIBILITY: hidden; POSITION: absolute">
<TABLE cellSpacing=0 cellPadding=3 width="200" border=0 style="border:1px solid #000000">
<TR><TD bgColor=#ffffe1>Подсказка№1</B>
</TD></TR></TABLE></DIV>

<DIV id="tip02" style="VISIBILITY: hidden; POSITION: absolute">
<TABLE cellSpacing=0 cellPadding=3 width="200" border=0 style="border:1px solid #000000">
<TR><TD bgColor=#ffffe1>Подсказка№2</B>
</TD></TR></TABLE></DIV>

<DIV id="tip03" style="VISIBILITY: hidden; POSITION: absolute">
<TABLE cellSpacing=0 cellPadding=3 width="200" border=0 style="border:1px solid #000000">
<TR><TD bgColor=#ffffe1>Подсказка№3</B>
</TD></TR></TABLE></DIV>

<DIV id="tip04" style="VISIBILITY: hidden; POSITION: absolute">
<TABLE cellSpacing=0 cellPadding=3 width="200" border=0 style="border:1px solid #000000">
<TR><TD bgColor=#ffffe1>Подсказка№4</B>
</TD></TR></TABLE></DIV>

<DIV id="tip05" style="VISIBILITY: hidden; POSITION: absolute">
<TABLE cellSpacing=0 cellPadding=3 width="200" border=0 style="border:1px solid #000000">
<TR><TD bgColor=#ffffe1>Подсказка№5</B>
</TD></TR></TABLE></DIV>


</body>
</html>

_________________
Жить хорошо...
А хорошо жить еще лучше...
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...