Нужно узнать bottom элемента. Решил этой цели добиться по другому. Узнал длину body, длину нужного элемента, offsetTop нужного элемента. Но вот на body не подходит ни scrollHeight, ни clientHeight, ни offsetHeight. Все они измеряют не то, кроме scrollHeight, но при прокрутке это значение меняется. Как узнать bottom у элемента
Вам нужно посчитать расстояние от низа элемента до низа документа, значит вам нужно отнять от высоты документа высоту элемента и расстояние от верха документа до верха элемента (еле написал). Так вроде же Александр ответил вам на вопрос, нет?
Я может быть покажусь профаном и вообще нехорошим человеком, но есть же jQuery, который на все вопросы сразу выдает ответ. Я имею в виду, что вместо того чтобы играть в Магеллана и бессистемно искать нужные свойства элементов, лучше же использовать готовые решения, разве нет? Ну а если вы горите желанием все таки узнать, какие именно свойства DOM элементов использует jQuery чтобы считать offset - смотрите код jQuery
Можно добавить в jQuery нужные функции:
jQuery.fn.extend({
'offsetBottom' : function() {
var d = $( document ), t = $( this );
return d.height() - t.offset().top - t.height()
},
'offsetRight' : function() {
var d = $( document ), t = $( this );
return d.width() - t.offset().left - t.width()
}
})
Никита Полевой: смысл мне использовать jquery когда у меня есть свой prototype? Смысл в том что не верно body длину возвращает, я по этому посчитать и не могу.
Эээ, в моем комментарии вы также могли прочитать, что даже если вам не нужен сам jQuery, вы можете заглянуть в его код и узнать, как он узнает высоту элемента, в частности - body.
var body = document.body, html = document.documentElement;
var height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
Никита Полевой: Так если в комментарий мой к вопросу не читали, тогда еще раз - У меня есть собственная функция fn.scrollHeight, она возвращает, то же что и jQuery, мне это не походит. У меня стоит scroll прокрутка. Есть 2 слайда, занимают 100% тела, сам элемент возвращает длину 643 и это логично, но должно быть 1286. Я думал может есть тот самый уже существующий offsetBottom. Кстати говоря я уже нашел решение.
Лол, почему "еще раз"? У вас нигде не написано ни про какую вашу собственную функцию fn.scrollHeight и нету у вас комментариев к вопросу. У меня сейчас 15:22 17.12.2015, тостер говорит, что "вопросы был задан 20 часов назад". Вот смотрите как на данный момент выглядит ваш вопрос:
"Нужно узнать bottom элемента. Решил этой цели добиться по другому. Узнал длину body, длину нужного элемента, offsetTop нужного элемента. Но вот на body не подходит ни scrollHeight, ни clientHeight, ни offsetHeight. Все они измеряют не то, кроме scrollHeight, но при прокрутке это значение меняется. Как узнать bottom у элемента"
Из этого вопроса я вижу что человеку нужно узнать offsetBottom какого-то элемента, но он решил "этой цели добиться по-другому", хотя из следующего же предложения следует, что алгоритм он будет использовать тот, который ему предложил Александр Миранович. В ответ на это предложение человек говорит, что подобное ему почему-то не подходит.
А потом вы вообще заявляете о какой-то своей функции. Она, мол, уже была где-то там у вас в комментариях упомянута, но это не так. И что значит эта странная фраза "у меня стоит scroll прокрутка"? Кажется, вы слишком глубоко "в теме")
Простите, если я вас обидел неумением телепатически узнавать, в чем там у вас проблема, но как-то мы с вами по-разному видели ваш вопрос.
Никита Полевой: господи!!! Подробное описание вопроса. Заголовок + описание, я это назвал комментарием. Я тебе же сказал, то что мне эти функции возвращают не то значение, которое я хотел, сука вот эти функции ЧИТАЙ:"offsetHeight,clientHeight, scrollHeight". Все они не подходят кроме последний, но при прокрутке значение изменяется из-за слайдера. JQuery использует эти функции, и ищет max коэффициент. Следовательно какая хуй разница как писать?
var height = Math.max( body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight );
или fn.scrollHeight(), $(document).height() ?
Мне не те значение они возвращают НИ НЕВЕРНЫЕ, а не те!
Ну во-первых, это не функции. А что значит "не те" все равно не понятно. Ну вы же уже решили свою проблему, так что наверное можете уже не объяснять. Я просто надеялся что вы-таки объясните, но, видимо, зря)