2012-11-27 4 views
1

У меня есть некоторые элементы с display:none; в CSS и некоторые jQuery, которые будут затухать их при задержке.jQuery - Что делать, если Javascript отключен?

Как я могу обрабатывать браузеры, у которых отключен javascript? Есть ли способ использовать <noscript> для изменения отображаемых значений этих элементов?

+0

Хорошо подумайте об этом на мгновение. Как запустить сценарий в теге noscript, когда скриптинг отключен? – asawyer

+0

Не можете ли вы поместить CSS для переопределения этих значений в теге 'noscript'? – Chad

+0

Зависит. Почему вы исчезаете в этих элементах, вместо того, чтобы видеть их с самого начала? –

ответ

1

Если вы используете Modernizr, он будет вставить класс js в ваш <html> тег (если Javascript работает, конечно), и имея HTML структуру, предложенную HTML5 boilerpate:

<!--[if lt IE 7 ]> <html class="no-js ie6 ie"> <![endif]--> 
<!--[if IE 7 ]> <html class="no-js ie7 ie"> <![endif]--> 
<!--[if IE 8 ]> <html class="no-js ie8 ie"> <![endif]--> 
<!--[if IE 9 ]> <html class="no-js ie9 ie"> <![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> 
<html class="no-js"> 
<!--<![endif]--> 

по умолчанию вы будете иметь <html class="no-js">, и вы могли бы потенциально иметь определенные вещи (что вы беспокоитесь о подвергаясь, которые обычно JS скрывать s) в вашем css по умолчанию использовать его как родительский селектор, чтобы скрыть его.

.no-js .whatever, .no-js .someOtherStuff { display: none; } <!-- just an example --> 
+1

Как я использую modernizr в любом случае, это был лучший вариант в конце. Использование '.no-js', чтобы показать элементы, которые постепенно исчезли в определенное время, был наилучшим способом устранения проблемы, связанной с javascript. Благодаря! – Jamesking56

+0

Рад помочь Джеймсу! Рад, что ты это сделал, ха-ха, мне придется подумать об этом для определенных вещей. –

2

Вы не можете установить значение CSS без скрипта, но вы можете иметь значение по умолчанию как видимое состояние, и первое, что вы делаете в скрипте, сразу же устанавливает элементы в невидимое состояние перед замиранием их.

Вы также можете посмотреть на CSS Animations http://www.w3.org/TR/css3-animations/ которые не требуют JavaScript, но они нуждаются в современной иш браузер http://caniuse.com/css-animation

+0

+1. Пусть скрипт скрывает их, если скрипт нуждается в них. – Bergi

+0

Спасибо, что он отлично работает с минимальным мерцанием, скрывая элементы сначала в моем jQuery в '$ (document) .ready', а затем запускает мою анимацию. Я думал, что это мерцает, но я думаю, что я не скрываю много элементов. Тем не менее, нужно протестировать IE. – Jamesking56

+0

@ Jamesking56 Я смутно вспоминаю из-за того, что иногда повторяю, что если ваш скрипт выполняется достаточно рано, (если onload слишком поздно, возможно, у подножия , который до перезагрузки), вы не получите никакого мерцания. –

0

Установите свойство CSS, чтобы отобразить элементы, а затем, если Javascript включен, использовать JavaScript, чтобы закрыть/скрыть элементы. Тем не менее, мне не нравится это делать, потому что количество пользователей с включенным javascript намного превосходит пользователей без javascript. Вы не хотите, чтобы основная часть ваших пользователей дождалась загрузки страницы всеми элементами, а затем спрятала их, когда у них уже был пик в содержимом.

Вы хотите, чтобы пользователи, которые на самом деле использовали вашу веб-страницу, как вы ее разработали, чтобы иметь лучший опыт, который они могут. Сеть настолько богата javascript, jquery и другими библиотеками, что пользователи без javascript используются, чтобы не получить опыт веб-разработчика. Если я чувствую, что у меня действительно есть мягкое место для пользователей без javascript, я перенаправляю их на статическую страницу. Их и веб-гусеницы будут веселиться вместе.

Смежные вопросы