¿Cuáles son las mejores prácticas de JavaScript para crear aplicaciones receptivas?

El diseño web receptivo no depende de javascript. Sin embargo, hay algunas excelentes bibliotecas de JavaScript que pueden mejorar aún más los diseños receptivos:

Enquire.js le permite usar consultas de medios en javascript, tal como lo haría en CSS. Esto podría, por ejemplo, permitirle activar JavaScript que carga un gran video de fondo solo en pantallas de gran tamaño. (WickyNilliams / enquire.js)

Respond.js es imprescindible si está diseñando dispositivos móviles primero y necesita admitir navegadores heredados (IE6–8). Es un polyfill de consulta de medios para navegadores antiguos que no los admiten de forma predeterminada. (scottjehl / Responder)

Picturefill.js es un polyfill para el elemento propuesto, que le permite servir imágenes de alta resolución solo con el tamaño y la resolución de pantalla que especifique. (scottjehl / picturefill)

Moderizr detecta la compatibilidad de un navegador con las características HTML5 y CSS3, lo que le permite habilitar / deshabilitar ciertas funciones que el navegador del usuario no admite. Esto puede ser útil para diseños receptivos, ya que la amplia variedad de navegadores y dispositivos móviles tienen un rango variable de soporte para nuevas funciones HTML5 y CSS3. (Modernizr / Modernizr)

Para responder explícitamente a su pregunta: no he encontrado ninguna práctica aceptada cuando se trata de usar Javascript para un diseño web receptivo (RWD).

En mi experiencia limitada con RWD, he encontrado que es mejor construirlo primero a través de CSS (por ejemplo, utilizando consultas de medios y porcentajes). Puede haber algunos casos en los que necesite controlar aspectos de su diseño que no se puedan manipular a través de CSS y necesite usar Javascript (por ejemplo, cambiar el tamaño del texto, solución: http://fittextjs.com/ ), pero le aconsejaría que mantente en CSS tanto como puedas porque para eso está ahí.

Si realmente desea hacer el trabajo pesado a través de Javascript, puede hacer cosas como adjuntar controladores al evento de cambio de tamaño y ajustar su diseño dentro de los controladores, pero eso no me parece limpio.

Aquí hay una publicación SO relacionada con mi respuesta: ¿Diseño web receptivo mediante CSS o JavaScript?

Creo que lo que estás preguntando es completamente diferente de las respuestas que has obtenido hasta ahora.

A menudo me he preguntado lo mismo. Puedo hacer que suceda cualquier diseño inteligente con CSS, pero lo que sucede con la funcionalidad de sus widgets o aplicaciones. Las bibliotecas de MV lo ayudan a administrar el estado y los bloques de construcción básicos, pero tal vez solo desee que funcione en ciertas condiciones o contextos con respecto al tamaño de la pantalla. ¿Es este diseño adaptativo? No es seguro.

Supongo que categorizaría su funcionalidad por experiencia (¿táctil?), Luego por tamaño de pantalla, luego por detección de soporte de características (cadena de complejidad ascendente). Mi instinto me dice que require.js (o equiv estándar en el futuro) resuelve este problema, la inyección de dependencia ftw. Angular hace esto con sus módulos principales desde una perspectiva puramente de software.

En pocas palabras, es una filosofía de código que debería explorarse mucho más profundamente. Tengo algo como esto en lo que respecta a SASS (CSS) a través del encadenamiento de clases basado en estado. .module.list.-open.

Supongo que una mentalidad orientada a objetos, una separación de la interfaz de usuario del código de lógica de negocios, con un enfoque en mapear estados / contextos, y una base de código modular es el camino a seguir. Defina los denominadores comunes más bajos para controlar el flujo de la instanciación de aplicaciones. Avanzar desde allí.

Espero que te dé algo para pensar.

Estoy de acuerdo con la mayoría de todos en que debes acercarte a RWD desde CSS primero porque es mucho más limpio que usar JavaScript. Probablemente podría tener una mejor experiencia con una biblioteca de JavaScript que escribirla en usted mismo. Nunca he usado un tercero y lo aprendí yo mismo al hacer una lógica condicional para detectar el cambio de tamaño de una ventana y obtener las dimensiones reales de la ventana cada píxel que cambia. En cualquier aspecto, buena suerte.

Creo que CSS sería la solución correcta, pero para manejar imágenes, se debe usar JavaScript para diferentes resoluciones de pantalla, donde JavaScript detectará primero la resolución de la pantalla y luego calculará el ancho y la altura de la imagen para esa resolución en particular.

More Interesting

¿Por qué desarrollamos aplicaciones nativas si solo podemos crear aplicaciones con HTML5 / CSS3 y Javascript y luego ejecutarlas en un contenedor?

Web Scraping: ¿Cómo puedo escribir un script para acceder a varias páginas web dentro del mismo dominio?

¿Qué lenguaje de programación se usó para construir Open2Study?

¿Cuáles son las ventajas de hacer desarrollo web con Haskell (por ejemplo, usar Snap Framework) en comparación con alternativas más establecidas?

Cómo desarrollar una aplicación web para este enunciado del problema

¿Qué servidor web utiliza HostGator para el alojamiento compartido?

Si desarrollamos una aplicación web utilizando una plantilla de administración de código abierto (GPL v3), ¿es obligatorio hacer que la aplicación sea de código abierto?

¿Cuál es la mejor herramienta de notificación push web disponible para CS-Cart?

¿Es WordPress una buena plataforma para construir un MVP para una aplicación web relativamente simple?

¿Es cierto que Visual Basic es más seguro que PHP (Laravel 5.4)?

Para las nuevas empresas de Internet, ¿ya no es una opción hacer una aplicación web?

¿Cuál es un mejor marco: Struts o Spring?

¿Cuál es la herramienta de desarrollo rápido más rápido para sitios web?

¿Cuáles son las ventajas y desventajas de tener el sitio web de una sola página, en términos de optimización de motores de búsqueda?

Necesito desarrollar un mapa web / de aplicaciones con más de 4 millones de ubicaciones comerciales. ¿Qué plataforma es la mejor?