Я принял ответ @ meouw, добавленный в clientLeft, который разрешает границу, а затем создал три версии:
getAbsoluteOffsetFromBody - похоже на @ meouw's, это получает абсолютное положение относительно тела или элемент html документа (в зависимости от режима quirks)
getAbsoluteOffsetFromGivenElement - возвращает абсолютную позицию относительно данного элемента (relativeEl). Обратите внимание, что данный элемент должен содержать элемент el, иначе он будет вести себя так же, как getAbsoluteOffsetFromBody. Это полезно, если у вас есть два элемента, содержащиеся в другом (известном) элементе (необязательно несколько узлов вверх по дереву узлов) и хотите сделать их одинаковыми.
getAbsoluteOffsetFromRelative - возвращает абсолютное положение относительно первого родительский элемент с положением: относительный. Это похоже на getAbsoluteOffsetFromGivenElement по той же причине, но будет идти только до первого элемента соответствия.
getAbsoluteOffsetFromBody = function( el )
{ // finds the offset of el from the body or html element
var _x = 0;
var _y = 0;
while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) )
{
_x += el.offsetLeft - el.scrollLeft + el.clientLeft;
_y += el.offsetTop - el.scrollTop + el.clientTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}
getAbsoluteOffsetFromGivenElement = function( el, relativeEl )
{ // finds the offset of el from relativeEl
var _x = 0;
var _y = 0;
while( el && el != relativeEl && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) )
{
_x += el.offsetLeft - el.scrollLeft + el.clientLeft;
_y += el.offsetTop - el.scrollTop + el.clientTop;
el = el.offsetParent;
}
return { top: _y, left: _x };
}
getAbsoluteOffsetFromRelative = function( el )
{ // finds the offset of el from the first parent with position: relative
var _x = 0;
var _y = 0;
while( el && !isNaN( el.offsetLeft ) && !isNaN( el.offsetTop ) )
{
_x += el.offsetLeft - el.scrollLeft + el.clientLeft;
_y += el.offsetTop - el.scrollTop + el.clientTop;
el = el.offsetParent;
if (el != null)
{
if (getComputedStyle !== 'undefined')
valString = getComputedStyle(el, null).getPropertyValue('position');
else
valString = el.currentStyle['position'];
if (valString === "relative")
el = null;
}
}
return { top: _y, left: _x };
}
Если у вас по-прежнему возникают проблемы, особенно связанные с прокруткой, вы можете попробовать посмотреть http://www.greywyvern.com/?post=331 - Я заметил в getStyle хотя бы один кусок сомнительного кода, который должен быть в порядке, если браузеры ведут себя, но не тестировали остальное вообще.
<sys/mount.h>
- это заголовок пользовательского пространства, его нельзя использовать для модуля ядра.
В ядре API для монтирования файловой системы используется ksys_mount()
или do_mount()
, но он не экспортируется в модули. Если вы действительно хотите монтировать из модуля ядра (а модификация ядра вам не подходит), вам придется дублировать пути ksys_mount () в вашем коде.