Если вы не хотите включать целую библиотеку JavaScript, вы часто можете извлечь нужные биты из одной.
Например, именно так jQuery реализует кросс-браузерную прокрутку (вверху | влево):
function getScroll(method, element) {
// The passed in `method` value should be 'Top' or 'Left'
method = 'scroll' + method;
return (element == window || element == document) ? (
self[(method == 'scrollTop') ? 'pageYOffset' : 'pageXOffset'] ||
(browserSupportsBoxModel && document.documentElement[method]) ||
document.body[method]
) : element[method];
}
getScroll('Top', element);
getScroll('Left', element);
Примечание: вы заметите, что приведенный выше код содержит переменную browserSupportsBoxModel
, которая не определена. jQuery определяет это , временно добавляя div на страницу, а затем измеряя некоторые атрибуты, чтобы определить, правильно ли браузер реализует блочную модель. Как вы можете себе представить, этот флаг проверяет IE. В частности, он проверяет IE 6 или 7 в режиме причуд . Поскольку обнаружение довольно сложное, я оставил его в качестве упражнения для вас ;-), если вы уже использовали браузер функцию обнаружение в другом месте вашего код.
Редактировать: Если вы еще не догадались, я настоятельно рекомендую вам использовать библиотеку для такого рода вещей. Затраты - это небольшая цена за надежный и ориентированный на будущее код, и любой мог бы быть гораздо более продуктивным с кросс-браузерной структурой, на которой можно было бы строить. (В отличие от того, чтобы тратить бесчисленные часы на то, чтобы биться головой об IE).