【发布时间】:2015-04-24 11:36:16
【问题描述】:
我正在使用 CSS 媒体查询来使我的网站具有响应性:
@media (min-width:1200px) {
// DESKTOP STYLING
}
@media (max-width:1200px) {
// MOBILE STYLING
}
我使用https://github.com/paulirish/matchMedia.js 来检查媒体查询
if(min-width:1200px) {
// DESKTOP JAVASCRIPT
} else {
// MOBILE JAVASCRIPT
}
所以最初一切正常,当我的屏幕小于 1200 像素时,它会显示移动版本,如果它更高则显示桌面版本(javascript 也可以)。
现在的问题是当我开始调整窗口大小时:
1) LOADS DESKTOP JAVASCRIPT (EVERYTHING IS FINE)
2) RESIZE WINDOW < 1200px (SWITCH TO MOBILE TEMPLATE)
LOADS MOBILE JAVASCRIPT (SITE BREAKS)
3) RESIZE WINDOW > 1200px (SWITCH TO DESKTOP TEMPLATE)
LOADS DESKTOP JAVASCRIPT A SECOND TIME (SITE BREAKS EVEN MORE)
所以我想知道如何“卸载”javascript,或者是一种优雅的方式来加载两个不同的 javascript 文件,具体取决于使用的媒体查询?
【问题讨论】:
-
也许可以尝试使用 jQuery Mobile。 jquerymobile.com ...从技术上讲,您也不需要使用 JavaScript 来使网站具有响应性。这一切都可以通过 CSS 和流体布局来完成。您能否详细说明一下 JavaScript 是如何发挥作用的?
-
好吧,我不使用 JavaScript 来使网站响应。我只是通过 CSS(媒体查询,我设计了两个单独的模板)来做到这一点。但由于移动版和桌面版使用相同的 DOM 元素,因此 javascript 仍然尝试运行幻灯片。这是一个问题,因为大多数交互元素在移动版本中被简化了。因此,您只需使用静态图像,而不是幻灯片。
-
好的,我明白了。抱歉,我误解了你的全部情况。
标签: javascript jquery media-queries responsive-design