Ответ 1
Теперь, когда я лучше понимаю компонент Affix, я придумал решение. После указания верхнего смещения и настройки CSS он работает хорошо. Ссылка будет прокручиваться в представлении, а затем "прикрепить" к нижней. Для страниц, на которых нет полосы прокрутки, ссылка никогда не включена. Я обновил JS Fiddle (здесь) с помощью рабочего примера. Ключами являются:
HTML:
<!-- child of the body tag -->
<span id="top-link-block" class="hidden">
<a href="#top" class="well well-sm" onclick="$('html,body').animate({scrollTop:0},'slow');return false;">
<i class="glyphicon glyphicon-chevron-up"></i> Back to Top
</a>
</span><!-- /top-link-block -->
JS:
<script>
// Only enable if the document has a long scroll bar
// Note the window height + offset
if ( ($(window).height() + 100) < $(document).height() ) {
$('#top-link-block').removeClass('hidden').affix({
// how far to scroll down before link "slides" into view
offset: {top:100}
});
}
</script>
CSS
<style>
#top-link-block.affix-top {
position: absolute; /* allows it to "slide" up into view */
bottom: -82px;
left: 10px;
}
#top-link-block.affix {
position: fixed; /* keeps it on the bottom once in view */
bottom: 18px;
left: 10px;
}
</style>
Примечание: Я не смог использовать аффикс нижнего смещения (пример), чтобы скрыть ссылку для коротких страниц из-за ошибки с расчетом высоты контейнерного контейнера (Bootstrap Issue # 4647). Я уверен, что есть обходное решение и приветствую решение этого метода.