- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
раньше не обращал внимание, а сейчас при написании одного скрипта, обнаружил интересное свойство некоторых браузеров:
если в качестве якоря передаётся id или class существующего элемента на странице, то браузер прокручивает страницу до этого элемента, к сожалению почему-то не желает прокручивать если данный атрибут (id, class) создаётся в момент формирования страницы js
кстати при создании метки средствами js (<a name="метка"></a>) в момент открытия страницы - браузер то же не прокручивает страницу
может кто-нибудь сходу подскажет как прокрутить страницу до метки сформированной js?
Я так понимаю, элемент создается после того, как DOM был сформирован.
В таком случае можно выполнять window.location.hash=window.location.hash; после формирования элемента.
mfl, замечательно только событие вызывается 6 раз :)
у меня dom формируется на лету,
соответственно вопрос когда запускать window.location.hash=window.location.hash
не очень понятно :(
к элементу я могу обратиться только через
window.location.hash=window.location.hash;
}, function(){});
использовать костыль вида
window.location.hash=window.location.hash;
}, function(){});
не очень хочется, а в первом случае функция будет вызвана столько раз сколько тегов h2 с явно указанным id
уточнить хотел, dom формируется по мере загрузки страницы, без срабатывания событий, зависящих от пользователя?
Если это так, то можно просто установить обработчик полной загрузки страницы.
$(window).load(function(){
window.location.hash=window.location.hash;
});
В противном случае, придется вызывать при каждом срабатывании события.
Т.е. использовать первый вариант, описанный Вами.
Но, думаю, это не проблема. При изменении window.location.hash перезагрузки станицы не происходит. Если якорь не встречается по мере формирования dom, то прокрутки не происходит.
mfl, замечательно только событие вызывается 6 раз :)
соответственно вопрос когда запускать window.location.hash=window.location.hash
Задержка на 100мс не спасет?
если в качестве якоря передаётся id или class существующего элемента на странице, то браузер прокручивает страницу до этого элемента
На счёт class первый раз слышу, но по id все браузеры давно прокручивают
может кто-нибудь сходу подскажет как прокрутить страницу до метки сформированной js?
Вы формируете страницу на стороне клиента с помощью JS, а прокрутку пытаетесь реализовать нативными средствами?😮
Я не вижу ничего плохого и сложного в прокрутке страницы с помощью JS, даже у всеми любимого Ойгукна есть эта фича
а в первом случае функция будет вызвана столько раз сколько тегов h2 с явно указанным id
Можно добавить удаление обработчика (аналог unbind, только для livequery) в конец функции, чтобы она не вызывалась повторно.
Я правильно понимаю, что версия JQuery старая? Т.к. в последних версиях, для навешивания обработчиков на ещё не созданные элементы можно обходиться "встроенными" возможностями библиотеки.
Т.к. в последних версиях, для навешивания обработчиков на ещё не созданные элементы можно обходиться "встроенными" возможностями библиотеки.
проблема в том что .on() необходимо передать событие, а не функцию,
т.е. конструкция вида
не сработает и к элементу на странице я обратиться не смогу, т.к. их нет в dom
почти в самом начале кода стоит строка
Если якорь не встречается по мере формирования dom, то прокрутки не происходит.
якорь может появляться в dom в любой момент :)
Задержка на 100мс не спасет?
не вариант - это тоже костыль :)
Вы формируете страницу на стороне клиента с помощью JS, а прокрутку пытаетесь реализовать нативными средствами?
да :)
да :)
Но зачем? Вообще, в данном случае, вариант нативной прокрутки - костыль, а вы на него ещё больше костылей пытаетесь навесить.
Банальный
уже не катит?http://learn.javascript.ru/metrics-window#изменение-прокрутки-scrollto-scrollby-scrollintoview
object.scrollIntoView(true)
проблема в том что object не известен заранее и определяется на другой странице в момент клика на неизвестном заранее элементе, после клика происходит переход на страницу на которой ещё нет этого объекта его сначала необходимо сформировать :)
проблема в том что object не известен заранее и определяется на другой странице в момент клика на неизвестном заранее элементе, после клика происходит переход на страницу на которой ещё нет этого объекта его сначала необходимо сформировать :)
Но ведь когда этот объект формируется и добавляется в DOM у вас к нему есть доступ, правильно? Я так думаю, что он у вас всё же не рандомно формируется