Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.11.2016, 17:49
Новичок на форуме
Отправить личное сообщение для Дмитрий94 Посмотреть профиль Найти все сообщения от Дмитрий94
 
Регистрация: 27.11.2016
Сообщений: 3

Появление контента при загрузке с учетом наличия JS
Здравствуйте!
Хочу сделать, чтобы на главной странице основной контент плавно появлялся, для этого я использую такую конструкцию перед </body>:
$('section').css({'opacity':'0'});
$(function() {
	$('section').css({'transition':'1.5s','opacity':'1'});
});


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

Есть вариант: прописать в CSS opacity:0, а потом через JS после загрузки уже делать opacity:1. Но тут вопрос: а как быть, если у юзера отключен JS? Получается, прозрачность так и останется прозрачной, без вариантов.

На сайте www.artlebedev.ru реализовано то, что я хочу: обратите внимание на появление контента при загрузке главной страницы. Вот как у них там сделано без учета document.ready: понять не могу. Причем, если отключить JS, то контент статичен и просто стоит на месте.

Как это работает? В каком направлении реализовывать идею?
Ответить с цитированием
  #2 (permalink)  
Старый 28.11.2016, 01:26
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$('section').css({'opacity':'0'}); - это не будет работать, пока не будет выполнено следующее
$(function() { ...
Ответить с цитированием
  #3 (permalink)  
Старый 28.11.2016, 20:36
Новичок на форуме
Отправить личное сообщение для Дмитрий94 Посмотреть профиль Найти все сообщения от Дмитрий94
 
Регистрация: 27.11.2016
Сообщений: 3

Но ведь работает...
Как правильно сделать? Чтобы прозрачность назначалась до загрузки контента?
Ответить с цитированием
  #4 (permalink)  
Старый 28.11.2016, 20:36
Новичок на форуме
Отправить личное сообщение для Дмитрий94 Посмотреть профиль Найти все сообщения от Дмитрий94
 
Регистрация: 27.11.2016
Сообщений: 3

И еще вопрос: когда браузер понимает, что document.ready и пора бы начать выполнение скриптов?
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2016, 00:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Дмитрий94,
ну так работает почему, потому что помещено в конце документа, то есть к моменту исполнения $('section').css({'opacity':'0'}); он загружен и DOM сформирован. Но это же и определяется обработчиком $(function() ..., чего тогда $('section').css({'transition':'1.5s','opacity':'1 '}); прятать в него?

А если

$('section').css({'opacity':'0'});
$('section').css({'transition':'1.5s','opacity':'1 '});

то первое действительно в CSS.

А браузер "понимает, что document.ready и пора", потому как наступает соответствующее событие, которое и обрабатывается.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить некоторые ссылки со страницы при помощи js goga5 Общие вопросы Javascript 7 12.07.2016 14:41
Изменение контента при скроле. DeNick Общие вопросы Javascript 2 11.05.2016 11:50
Прочесть параметр при загрузке JS smalexxx jQuery 2 31.07.2013 15:37
Colorbox сразу при загрузке FirstRelict jQuery 3 26.05.2013 13:51
Опера вешает комп намертво при включенном JS. Хелп! extrim-style Javascript под браузер 25 06.07.2012 00:17