Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2015, 19:39
Интересующийся
Отправить личное сообщение для runyugin Посмотреть профиль Найти все сообщения от runyugin
 
Регистрация: 20.01.2015
Сообщений: 15

Divприкрепить к низу когда его нижняя граници достигнет нижней части экрана
На Экране два длинных div расположенных слева и справа.
Они имеют разную длину из-за содержащего контента.
Задачи при с скролинге вниз в момент когда более короткий Div достигнет нижней части экрана прикрепить его к низу а второй продолжает скролиться до своего окончания.
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2015, 20:00
Интересующийся
Отправить личное сообщение для runyugin Посмотреть профиль Найти все сообщения от runyugin
 
Регистрация: 20.01.2015
Сообщений: 15

Вот схема как должно работать
Вложения:
Тип файла: zip div.zip (25.7 Кб, 1 просмотров)
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2015, 01:05
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Слушаешь событие scroll у document, когда document.body.scrollTop оказывается больше, чем block.offsetTop + block.offsetHeight, меняешь его css свойства: position:fixed, bottom:0.
Можно иначе определелять положение блока относительно viewport:

block.getBoundingClientRect.bottom > 0.
А scrollTop в разных браузерах должен быть разный. Хотя можно заменить на window.scrollY - работает почти везде.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2015, 09:15
Интересующийся
Отправить личное сообщение для runyugin Посмотреть профиль Найти все сообщения от runyugin
 
Регистрация: 20.01.2015
Сообщений: 15

Пока не срабатывает

<style>

.fixed {
position: fixed;
bottom: 10px; /*здесь указываем отступ сверху*/
left:510px;
z-index: 9999; /*устанавливаем блок поверх всех элементов на странице*/
}
</style>


<div class="wrapper clearfix">
            <!-- Coln-left -->
			<div class="coln-left">

                        </div>

            <!-- Coln-left #END /-->


			<!-- Content -->

			<div class="content">

                        </div>

			<!-- Content #END /-->
</div>



<script>//<![CDATA[
$(function(){
var topPos = $('.content').offsetTop() + $('.content').height(); //topPos - это значение от верха блока до окна браузера
$(window).scroll(function() {
  var top = $(document).scrollTop();
  if (top < topPos) $('.floating').addClass('fixed');
  else $('.floating').removeClass('fixed');
});
});
//]]></script>
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2015, 10:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от runyugin
floating'
и где ?
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2015, 10:42
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Ошибся чутка. Нужно сравнивать не scrollTop, а scrollTop + window.innerHeight - то есть нижняя видимая ордината документа.
Сообщение от runyugin
topPos - это значение от верха блока до окна браузера
Нет, это значение от начала документа до низа блока.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2015, 10:53
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

runyugin,

<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style>

.content.fixed {
position: fixed;
bottom: 10px; /*здесь указываем отступ сверху*/
left:510px;
z-index: 9999; /*устанавливаем блок поверх всех элементов на странице*/
}

.coln-left{
  position: absolute;
  left: 0px;
  width: 100px;
  height: 1500px;
  background: #009933;
  border-bottom: #CC33CC 5px solid;
}
.content{
  position: absolute;
  left: 510px;
  width: 100px;
  height: 1200px;
  background:  #3399FF;
  border-bottom: #CC33CC 5px solid;
}
</style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
     $(function(){
      var topPos = $('.content').offset().top + $('.content').height(); //topPos - это значение от верха блока до окна браузера
$(window).scroll(function() {
  var top = $(this).scrollTop()+ $(this).height();
  if (top > topPos) $('.content').addClass('fixed');
  else $('.content').removeClass('fixed');
});

});


  </script>
</head>

<body>


<div class="wrapper clearfix">
            <!-- Coln-left -->
			<div class="coln-left">

                        </div>

            <!-- Coln-left #END /-->


			<!-- Content -->

			<div class="content">

                        </div>

			<!-- Content #END /-->
</div>

</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2015, 10:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от runyugin
offsetTop()
???
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск