За последние 24 часа нас посетили 20088 программистов и 1693 робота. Сейчас ищут 1842 программиста ...

прокрутка div до указанного положения при загрузке страницы

Тема в разделе "HTML и CSS", создана пользователем Frai, 29 авг 2015.

  1. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Приветствую! Возникла необходимость на страницах сайта провернуть прокрутку в некоем div до метки или же расстояния от начала его. По сути там например десять абзацев текста, на одной странице мне надо показать пользователю с начала div начиная с третьего, на другой с пятого. Проблема в том, что все решения, которые обнаружил в интернете, рекомендуют вставлять в этот блок другой блок, последний прокручивать, возможно есть способ проще, чтобы этому div указать положение прокрутки? Всё переверстывать нет возможности.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: прокрутка div до указанного положения при загрузке стран

    атрибут name у тега A и якорь не подходит?
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    ну раз тема в разделе HTML и CSS…
    когда в адресе присутствует хеш с id какого-то элемента, то при открытии страница будет прокручена до этого элемента.
    example.com/index.html#article2

    или таки Javascript:
    в обработчике document ready помести вызов прокрутки. типа
    Код (PHP):
    1. $(function() {
    2.   var $to = $('#article2');
    3.   $('html, body').animate({ scrollTop: $to.offset().top, scrollLeft: $to.offset().left }, 500, 'swing');
    4. }); 
    Добавлено спустя 4 минуты 58 секунд:
    Re: прокрутка div до указанного положения при загрузке страницы
    сорри, был невнимателен!
    тогда указывай его:
    $('#nekij-div').animate(…
     
  4. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    Якорь name не рассматривал, так как его инициализирует href, а не загрузка страницы, пользователь может зайти из поисковика без всяких хешей. вариант со скриптом сейчас опробую.

    Добавлено спустя 31 минуту 48 секунд:
    Re: прокрутка div до указанного положения при загрузке страницы
    animate это для query? не используется
    неужели у див нет такого свойства(значение прокрутки по умолчанию)?
    если упростить задачу, то я могу переставить метку (или измерить расстояние от верха) для каждой из этих страниц
    задача будет выглядеть так:
    загружается страница(без хешей всяких)
    есть <div id="scrollTo" > содержимое </div>

    надо его по загрузке страницы показать прокрученным до метки, строчки, расстояния, в чем угодно можно, главное прокрутить
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: прокрутка div до указанного положения при загрузке стран

    можно перенаправление сделать, зашёл на one.html переправил на two.html#div
     
  6. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    сомневаюсь, что поисковик или пользователь дадут в таком случае ссылку на one.html
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: прокрутка div до указанного положения при загрузке стран

    Тогда сделай на javascript
     
  8. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    Я бы использзовал код c query, который здесь приведен, но устанавливать библиотеку ради одной лишь прокрутки... в библиотеке же это как то реализовано?
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: прокрутка div до указанного положения при загрузке стран

    да, реализовано, можешь найти вы интернете примеры
     
  10. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    В общем продвинулся в сторону решения проблемы так - установил флажки в нужной форме с прокруткой #go1, #go2... и
    вставил простой js в документ, который перенаправляет окно пользователя (window) вверх(прокручивает все)
    Код (PHP):
    1. window.onload = function()
    2.             {   
    3.             setTimeout(function(){ window.scrollTo( 0, 0 ) });                                       
    4.          }
    однако при переходе на страницу page.php#go1 страница дергается до # а потом только выравнивается, как убрать этот эффект не представляю. Что известно про событие перехода до флажка? Когда оно возникает и как можно обойти его с помощью js? Есть идеи?
    PS Сторонними библиотеками не пользуюсь
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Re: прокрутка div до указанного положения при загрузке стран

    опубликуй пожалуйста минимально необходимую страницу с примером.
     
  12. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    Вопрос ещё актуален. Я решил проблему тем, что сделал плавный съезд вниз страницы. Но выглядит это так: пользователь кликает по ссылке с #wtf на конце на странице в отдельном окошке, которое ниже шапки сайта, прокручивается до метки wtf, но прокручивает эту метку вверх ввезде, то есть шапка сайта уезжает и довольно резко вверх. Как мне сделать прокрутку в отдельном div до метки, не затрагивая прокруткой всё остальное? Без сторонних js
     
  13. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.584
    Симпатии:
    1.762
    Re: прокрутка div до указанного положения при загрузке стран

    Без сторонних - не знаю, вот с этим: https://github.com/flesler/jquery.scrollTo очень просто. Правда, чтоб в отдельном div было, наверное он должен иметь overflow: scroll, но тут я не пробовал
     
  14. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    Спасибо за информацию, уже решил вопрос element.scrollTo=, теперь проверяю на кроссбраузерность.
     
  15. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    и этот способ не кроссбраузерный. В хроме сбивается где-то на 40px вниз, причем чем ниже прокрутка тем больше разница. У остальных браузеров не так заметно.
     
  16. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.114
    Симпатии:
    1.244
    Адрес:
    там-сям
    Re: прокрутка div до указанного положения при загрузке стран

    про оффсет посмотри http://stackoverflow.com/a/4335532/272885 вроде бы вопрошающий был удовлетворён результатом

    Добавлено спустя 2 минуты 22 секунды:
    Re: прокрутка div до указанного положения при загрузке страницы
    кроме того, рапортуют, что есть проблема со временем измерения. load / ready: http://stackoverflow.com/a/25631152/272885

    Добавлено спустя 3 минуты 3 секунды:
    Re: прокрутка div до указанного положения при загрузке страницы
    алсо, пример вычисления смещения: http://javascript.ru/ui/offset
     
  17. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: прокрутка div до указанного положения при загрузке стран

    в этот момент делаешь js переход на якорь и усё.
     
  18. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Спасибо за наводки, я вчера примерно к этому и пришёл. Сравнивал высоту блока со стандартной (где у меня всё выставлено), чтобы на ходу принимать поправки - наткнулся на странность, что hrom и opera ни в какую не хотят измерять высоту блока, где стоит swf, а у меня такие попадаются, и если есть флешка в контенте - расчёты сбиваются.
    Это всё по offsetHeight и getBoundingClientRect().

    Код (PHP):
    1. <div  style="position:absolute ; overflow: scroll; height: 200px; top: 0px;">
    2. <div id="test">
    3. <object><embed pluginspage="http://www.macromedia.com/go/getflashplayer" src="swf/Test.swf" menu="false" wmode="transparent" type="application/x-shockwave-flash" height="500" width="200"></object>
    4. </div>
    5. </div>
    6.  
    Немного позднее код:
    Код (PHP):
    1. <script type="text/javascript">
    2.     alert(document.getElementById('test').getBoundingClientRect().bottom+ " &  "+ document.getElementById('test').offsetHeight)
    3. </script>
    Mozilla 500 & 500
    Hrome 150 &150
    Opera 149.600 & 150

    Добавлено спустя 8 минут 59 секунд:
    Re: прокрутка div до указанного положения при загрузке страницы
    Код (PHP):
    1. <script type="text/javascript">
    2.     window.location="#1"
    3. </script>
    Работает, к сожалению, так-же, как и переход по url#1, то есть прокручивает всю страницу вверх, а нужно только содержимое определённого блока.
     
  19. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    Отладил более-менее, выставив межстрочный интервал в пикселях и загнав флешки в div' ы c указанными размерами. Работает.Но! Путь этот кажется мне ущербным в том смысле, что если придётся менять в дальнейшем на странице размер флешки или шрифтовые интервалы, или добавить несколько слов к тексту, то всё скролирование полетит к чертям. Поэтому возвращаюсь к якорям # и ищу идеи по максимально одновременному смещению окна, когда его перебрасывает вверх.
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: прокрутка div до указанного положения при загрузке стран

    ммм. Не должен он прокручивать "вверх" потому что анкор применяется для прокрутки до анкора, иначе бы в нём не было смысла.
     
  21. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    Проще говоря мне нужно как на картинке срабатывания анкора на странице:[​IMG]

    Добавлено спустя 8 минут 28 секунд:
    Re: прокрутка div до указанного положения при загрузке страницы
    Дайте мне волшебную ссылку на решение проблемы и я от вас отстану)
     
  22. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.584
    Симпатии:
    1.762
    Re: прокрутка div до указанного положения при загрузке стран

    position: fixed у шапки. А дальше в сети много можно найти приёмов, чтоб якорь под неё не лез. http://truemisha.ru/blog/css/ssyilki-yakori.html

    Добавлено спустя 48 секунд:
    Re: прокрутка div до указанного положения при загрузке страницы
    https://toster.ru/q/196039
     
  23. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Re: прокрутка div до указанного положения при загрузке стран

    я нифига не понял. Ты куда якорь ставишь, туда он и прокручивает. Ставь в другое место, если тебе нужно докрутить до другого места. Про фикс шапку видимо это то, что нужно. Но я не понял вопроса до сих пор так что пох.
     
  24. Frai

    Frai Активный пользователь

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Re: прокрутка div до указанного положения при загрузке стран

    Шапка у меня отнюдь не fixed. Но за ссылку огромное спасибо!