Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
kukuikar
Зарегистрирован: 23.02.2005 Сообщения: 30 Откуда: Москва
|
Добавлено: Вт Мар 01 2005 17:42 Заголовок сообщения: Динамическая подсказка (JavaScript) и проблемы ее показа.... |
|
|
Помогите.
Незнаю в чем проблема. Функция вызывает подсказку и она следует за мышью. По крайней мре должна. Все работает когда документ не проскороллен. Как только документ сдвинется вниз. подсказка уходит наверх независимо от координат мыши. Я учел document.body.scrollTop(Left), почему-то все равно не работает. Сломал все свои мозги . Если сделать статичный 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 = ' ';
$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
}
/////////////////////////////////////////////////
|
|
|
Вернуться к началу |
|
|
kukuikar
Зарегистрирован: 23.02.2005 Сообщения: 30 Откуда: Москва
|
Добавлено: Пт Мар 04 2005 14:31 Заголовок сообщения: |
|
|
Господа, прошу, ну хоть какие-нибудь мысли... _________________ Жить хорошо...
А хорошо жить еще лучше... |
|
Вернуться к началу |
|
|
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';
}
} |
_________________ Жить хорошо...
А хорошо жить еще лучше... |
|
Вернуться к началу |
|
|
Витал
Зарегистрирован: 09.08.2004 Сообщения: 73
|
Добавлено: Пт Апр 22 2005 07:57 Заголовок сообщения: |
|
|
а можешь показать сгенеренный хтмл,может чем помогу,хотя не обещаю,а то с пхп не очень |
|
Вернуться к началу |
|
|
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> |
_________________ Жить хорошо...
А хорошо жить еще лучше... |
|
Вернуться к началу |
|
|
|