#jquery #css #offset
#jquery #css #смещение
Вопрос:
Я новичок в jQuery. Я хочу получить верхнее смещение определенного элемента. Я использую следующий метод:
var top = $("img").offset().top;
Однако он возвращает отрицательное значение. Я не могу понять, почему он вернет отрицательное значение? Наименьшее значение должно быть равно нулю, или я что-то не так понял?
PS Я использую разрыв столбца CSS3 в html-файле.
Большое спасибо!!!
РЕДАКТИРОВАТЬ: тело html-файла:
<div id="chapter-0">
<div>
<h1 xml:lang="en-us" id="toc-anchor">Main Title</h1>
<h2 xml:lang="en-us" id="toc-anchor-1">Subtitle 1</h2>
<p xml:lang="zh-hk"> text</p>
<p xml:lang="zh-hk"> text</p>
<h2 xml:lang="en-us" id="toc-anchor-2">Subtitle2</h2>
<p xml:lang="zh-hk"> text</p>
<p xml:lang="zh-hk"> text</p>
<h2 xml:lang="en-us" id="toc-anchor-3">Subtitle3</h2>
<p xml:lang="zh-hk"> text</p>
<p xml:lang="zh-hk"> text</p>
</div>
<div>
<img src="images/Table-01_fmt.jpeg" alt="Table-01.indd">
</div>
</div>
Код, который я использовал для определения высоты изображения:
$("img").each(function(i) {
var top = $(this).offset().top;
alert(top);
}
Комментарии:
1. Что со всем
xml:lang
этим?lang
это допустимый атрибут HTML, зачем вам префикс? Кроме того, почему вы пытаетесь избежать кавычек в своем коде?
Ответ №1:
Вам было бы легко помочь, если вы опубликуете html-часть, где img
есть, а также CSS, примененный к ней.
Редактировать:
Я проверил опубликованный вами код, и у меня были синтаксические ошибки в части jQuery, после их исправления я попробовал как в Firefox, так и в Google Chrome, все работает нормально.
Итак, не могли бы вы попробовать следующий html-файл и посмотреть? Единственное отличие — это двойные кавычки и добавление закрывающей скобки, которые отсутствовали в коде jQuery.
Это работает в Chrome.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js'></script>
<script type='text/javascript'>
$(document).ready(function () {
$("img").each(function(i) {
var top = $(this).offset().top;
alert(top);
});
});
</script>
</head>
<body>
<div id="chapter-0">
<div>
<h1 xml:lang="en-us" id="toc-anchor">Main Title</h1>
<h2 xml:lang="en-us" id="toc-anchor-1">Subtitle 1</h2>
<p xml:lang="zh-hk"> text</p>
<p xml:lang="zh-hk"> text</p>
<h2 xml:lang="en-us" id="toc-anchor-2">Subtitle2</h2>
<p xml:lang="zh-hk"> text</p>
<p xml:lang="zh-hk"> text</p>
<h2 xml:lang="en-us" id="toc-anchor-3">Subtitle3</h2>
<p xml:lang="zh-hk"> text</p>
<p xml:lang="zh-hk"> text</p>
</div>
<div>
<img src="images/Table-01_fmt.jpeg" alt="Table-01.indd" />
</div>
</div>
</body>
</html>
Комментарии:
1. Спасибо за напоминание. Я обновил свой вопрос некоторыми кодами.
2. Я добавил код, который я тестировал. Помимо незначительных синтаксических ошибок, это работает для меня. Проверьте мой отредактированный ответ.