За последние 24 часа нас посетил 24831 программист и 1701 робот. Сейчас ищут 847 программистов ...

Все внутренее переходы открывать ниже шапки скрол 600px

Тема в разделе "PHP для новичков", создана пользователем fxtalant, 15 мар 2017.

  1. fxtalant

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

    С нами с:
    15 мар 2017
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Россия, Москва, Радужная улица, 15, корп. 1
    у меня не получилось полностью собрать Ваш метод, если можно напишите его полностью?
     
  2. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Яего и написал полностью первый раз. Разве так сложно заменить "100" на "height"?
     
  3. fxtalant

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

    С нами с:
    15 мар 2017
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Россия, Москва, Радужная улица, 15, корп. 1
    Вот так получилось, большое спасибо, я только начинаю ковырять эти коды.
    Код (Text):
    1.     if (document.referrer) {
    2.        refurl = document.referrer;
    3.        refdomain = refurl.match(/:\/\/(.[^/]+)/)[1];
    4.        if (refdomain === 'vdmy.ru') {
    5.         var height = $('.header').height() + $('.advantage').height();
    6.          window.scrollTo (0, height);
    7.        }
    8.     }
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Якоря и должны быть в ссылке. Для этого они и сделаны. И дело не в том, что кто-то что-то там при желании видит. Всем плевать. Никто ничего не видит. Я многократно говорил, в адресную строку никто не смотрит, кроме разработчика. И на ее невероятную красоту никто не фапает, кроме разработчика. Пользователям - плевать. Адресная строка - отличный инструмент, а вы сами себе режете крылья этим вот "не хочу портить". Пфф. Плюс, вы забываете, что ссылка может быть открыта, например, из закладок в браузере. В том и суть якорей - открывать на нужном месте.
    Про порчу ссылок выше. Про не охото использовать JS - мимо. "Не охота" и "не умею" - не синонимы. Выбирать тот инструментарий, который знаете, вместо того, который нужен - заведомо гиблая тактика. Знаю я одного перца, он на Си++ сайт писать пытался. Тут на форуме был. После обещания запилить что-то на плюсах от него ни слуху ни духу, наверное застрелился.
    [​IMG]

    Держи, пользуйся на здоровье:
    Код (Javascript):
    1. element.bounds = element.getBoundingClientRect();
    Все. Теперь тебе доступна вся информация о позиционировании элемента. Одной строкой. Без JQ.
    Код (Javascript):
    1. element.bounds.top;
    2. element.bounds.left;
    3. element.bounds.width;
    4. element.bounds.right;
    5. //...итд
    Как свойства, а не как, facepalm, методы. Только обновлять их по мере надобности не надо забывать.
    --- Добавлено ---
    А еще есть рилтаймовые offset-ы, которые всегда доступны по умолчанию. Тоже как свойства. У каждого объекта в DOM.

    Код (Javascript):
    1. element.offsetTop;
    2. element.offsetLeft.
    3. element.offsetHeight;
    4. element.offsetWidth;
     
  5. fxtalant

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

    С нами с:
    15 мар 2017
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Россия, Москва, Радужная улица, 15, корп. 1
    Вы правы не умею, но и не охото пока есть проще решение, так как знаю что JS скрипты тормозят загрузку сайта в целом.
    Ваш метод решает вопрос позиционирования, а как его собрать в мою задачу, что только внутренние переходы открывают сайт с определённой высоты?
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    js скрипты - это такой же текст, как html и css и загружаются таким же способом.
     
  7. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Ну я ж говорил)))
    --- Добавлено ---
    А моё решение не устраивает, что ли? (Если с подсказкой суриката то и без жквери...)
     
  8. fxtalant

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

    С нами с:
    15 мар 2017
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Россия, Москва, Радужная улица, 15, корп. 1
    Устраивает, только не могу понять и нет опыта как это все в кучу собрать, подскажите?
     
  9. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Первым делом не спешить. Вторым делом - осмыслить.
     
  10. fxtalant

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

    С нами с:
    15 мар 2017
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Россия, Москва, Радужная улица, 15, корп. 1
    Это верно, но опыта маловато, поэтому и прошу помощи у специалистов!
    --- Добавлено ---
    Мне не в силах собрать рабочий скрипт.
     
  11. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    А ты его не собирай. Ты его напиши. Сядь. Возьми листочек. По пунктам выпиши, что должно происходить. Сначала на высоком уровне абстракции, типа "кликнул-получил". Потом, каждый пункт распиши на составляющие попроще. Потом еще раз. Это называется декомпозиция. Любую сверхсложную задачу можно разбить на конечное множество задач простейших. Когда разобьешь до уровня, на котором скажешь "о, а это я могу, этож фигня", окажется, что у тебя все поставленные перед тобой задачи именно такого уровня. Потом решай одну за одной. Потихоньку, методично.

    А когда ты их все выполнишь, удивишься, что делал много задач "о, это ж полная фигня", а получилось, что сделал одну, но, что была "мне не в силах".
     
    mkramer нравится это.
  12. fxtalant

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

    С нами с:
    15 мар 2017
    Сообщения:
    23
    Симпатии:
    0
    Адрес:
    Россия, Москва, Радужная улица, 15, корп. 1
    Вот я так понимаю, что после выполнения этого условия:
    Код (Javascript):
    1.     if (document.referrer) {
    2.        refurl = document.referrer;
    3.        refdomain = refurl.match(/:\/\/(.[^/]+)/)[1];
    4.        if (refdomain === 'vdmy.ru')
    нужно выполнить:
    Код (Javascript):
    1. element.bounds = element.getBoundingClientRect();
    что откроет сайт на нужной позиции.
    --- Добавлено ---
    у меня следует ДИВ .content после тех которые нужно пропустить.
    А как написать:
    Код (Text):
    1. element.bounds = element.getBoundingClientRect();
    открыть сайт с позиции .content, для меня это???
    попробывал наугад подставлять значения а вот где почитать или посмотреть полное руководство в отношении этой задачи, не найду.
     
  13. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Я же сказал, не надо спешить. Я дал абстрактное решение, а не финальный готовый код.
    element в данном случае - это твои DIV. Почитай, как получить определенный DIV(и вообще элемент страницы) через JS.
    getBoundingClientRect(); - это метод, который вернет границы объекта.
    Так как ты присваиваешь его результат новому свойству bounds у элемента, то, через это свойство ты можешь обращаться к границам объекта, например, узнать положение его верхней границы на странице:
    element.bounds.top;

    А вообще, правда, юзай якори, они тут больше к месту. А проверку делай не по референсу, а по куке.