Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему-то не работает скрипт
 
 автор: Владимир55   (17.04.2017 в 15:40)   письмо автору
 
 

<script src="/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
var scr_w=screen.width;
if (scr_w < 650) {
var h = document.getElementsByTagName('h1')[0];
h.scrollIntoView(true);
}
</script>


Идея такая - если ширина экрана устройства меньше 650рх, то страница при открытии автоматически прокручивается до Н1. Но этого не происходит.

(Подозреваю, что причина в if (scr_w < 650) - что-то здесь не так...).

  Ответить  
 
 автор: confirm   (17.04.2017 в 17:16)   письмо автору
 
   для: Владимир55   (17.04.2017 в 15:40)
 

И не произойдет, на момент выполнения скрипта DOM еще не сформирован и никакие элементы на странице не доступны. Отладчик надо включать и проверять ошибки.

  Ответить  
 
 автор: Владимир55   (17.04.2017 в 17:38)   письмо автору
 
   для: confirm   (17.04.2017 в 17:16)
 

Нельзя ли достичь желаемого результата через @media ?

  Ответить  
 
 автор: confirm   (17.04.2017 в 18:15)   письмо автору
 
   для: Владимир55   (17.04.2017 в 17:38)
 

Трудно сказать, ведь не один же H1 на странице, что-то предшествует ему. Все зависит от верстки, стилей других элементов, и описывать возможно нужно будет всех.

А скрипты нужно запускать после формирования DOM, а не где попадя.

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script> 
$(function() {
    if($(window).resize(function(){
        if(this.innerWidth < 650) $('h1')[0].scrollIntoView()
    }).width() < 650) $(window).trigger('resize');
});
</script>

  Ответить  
 
 автор: Владимир55   (17.04.2017 в 19:53)   письмо автору
 
   для: confirm   (17.04.2017 в 18:15)
 

ведь не один же H1 на странице, что-то предшествует ему.

H1 только один на странице (в том смысле, что второго тега Н1 нет), но ему предшествует не просто много кода, а еще и разный код на разных страницах. Так что и весь его описать не удастся.

Созданный Вами скрипт ведет себя очень интересно.

Если использовать реальный контент, где тегу Н1 предшествует какая-то еще комбинация кода (верхнее меню, хлебные крошки, реклама, разметка), то страница открывается как надо - на Н1.

А если сделать примитивный контент типа
<body>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />

<h1>ООО &QUOT;СОМНАМБУЛА&QUOT;</h1>

<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</body>

то открывается с самого верха.

В общем, проблема разрешилась.

Спасибо!

  Ответить  
 
 автор: confirm   (17.04.2017 в 20:03)   письмо автору
 
   для: Владимир55   (17.04.2017 в 19:53)
 

Так я и говорил, что перед заголовком может быть бог весь чего, и если через @media, то весь этот код нужно будет учитывать.

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

  Ответить  
 
 автор: Владимир55   (17.04.2017 в 20:26)   письмо автору
 
   для: confirm   (17.04.2017 в 20:03)
 

Ещё раз спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования