问题标签 [enquire.js]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8183 浏览

jquery - 谷歌地图在隐藏的 div 中不显示

我知道这是本网站和其他地方报告的常见问题,例如

但我无法解决我的问题。

因此,我首先建立了一个响应式站点,首先是移动设备,并且我正在尝试使自适应地图解决方案正常工作,即移动视口获取静态 Google 地图图像,而对于非移动视口,则使用完整的 Google 地图 API,这一切都必须自行更新当视口不仅在页面加载时调整大小时。基于此:http ://codepen.io/bradfrost/pen/tLxAs 。

我正在使用这个库

我仅在需要时(非移动视口)通过 jQuery$.getScript以及库setup()defer()函数有条件地加载 Maps API。

因此,在我使用 jQuery 的每个视口中只有正确的地图渲染,hide()因此show()API 地图不会完全加载自身(只有 1 个图块),如果页面在非移动视口加载,它确实可以正常加载大小,这是当您将移动视口大小调整回非移动视口大小时,因为这是该show()方法启动的时候。其他一切正常。

这是我的代码:

HTML

默认情况下会加载静态地图图像,因为该站点首先是 Mobile 构建的。

JS

这是'/includes/scripts/adaptive-google-map.php'的内容,它是通过 jQuery 进行 AJAX 处理的load()

这解决了问题:

但是会抛出一个 JS 错误:Uncaught ReferenceError: initialize is not defined. ppl 建议的另一个常见修复方法。正在应用这个:google.maps.event.trigger(map, 'resize');但是当我把它放在之后:mapDynamicContainer.show();match()函数中我得到这个 JS 错误:Uncaught ReferenceError: google is not defined

运气不太好:(

0 投票
1 回答
1252 浏览

javascript - iOS 4 Safari 和 Android 2.3 浏览器 Modernizr / matchMedia / Enquire.js 缓存问题

我正在使用 enquire.js 为我的一些响应式项目做一些基本的 toggleClass 功能。

对于 Android 2.3 及更低版本和 iOS 4 Safari 等旧版浏览器,以下示例不起作用。

我正在做一些现代化测试,如下所示。较旧的 Android 浏览器和 iOS 4 Safar 不支持 matchMedia,因此 matchMedia polyfill。

我创建了一个测试用例并使用 BrowserStack 对其进行了测试,但它在 iOS 4 及更低版本上失败了。http://goo.gl/3a3ss,或者一个可能有效也可能无效的小提琴.. http://jsfiddle.net/jSg6X/

最初这是在 Drupal 站点上使用的。在初始加载时,一切正常。如果您刷新页面或尝试转到另一个页面,则脚本在 matchMedia 测试中失败。如果您清除浏览器缓存并重新加载,它会再次起作用,但仅适用于该页面。

(函数 ($, 窗口, 文档) {

})(jQuery, this, this.document);

任何帮助,将不胜感激。我不确定我是否没有正确使用 enquire.js,或者我遗漏了一些东西。

我已经创建了一个进一步简化的测试用例,并且得到了相同的结果。我使用了下面的js(没有意义,我知道,但它会在第一次加载时加载警报,仅此而已)

(函数 ($, 窗口, 文档) {

Modernizr.load([ //第一个测试需要 matchMedia polyfill { test: window.matchMedia, nope: 'js/media.match.min.js', load: 'js/enquire.min.js', callback: function( ){ 警报(“测试”); } } ]);

})(jQuery, this, this.document);

0 投票
1 回答
214 浏览

javascript - 使用 Enquire.js 基于媒体查询切换功能

这实际上与问题相同,但我希望有人可以更彻底地回答。

我正在尝试使用两个不同的 js 函数创建网站的“移动”和“完整”版本。我了解响应式设计,并且我正在通过 CSS 进行大部分更改,但是这两个版本需要具有两个不同的互斥 js 函数。Enquire.js允许使用媒体查询,如果浏览器窗口没有调整大小,它们可以很好地工作。但是,如果您将窗口的大小从“完整”调整为“移动”,尽管我在下面做出了最好的(可能不是很好)努力,但我示例中的函数 full() 并没有停止运行。然而,警报总是正确的:full() 为“true”,mobile() 为“false”,这些函数似乎忽略了 if 语句。如果有更好的选择,我可以不使用询问。

js-decider.js

完整的.js

移动.js

0 投票
1 回答
731 浏览

jquery - 为 Jquery 动画有效地使用 Enquire.js 和媒体查询

嗨,我一直在努力弄清楚如何使用 enquire.js。我正在使用 .mouseenter(function() 来激活 .show 和 .hide 功能。但是当您在平板电脑和移动设备上查看它时,.mouseenter 变得多余。我想告诉 jquery 一旦屏幕宽度达到我的就显示 div媒体查询。

下面是一个例子。

这是我的jQuery:

这是我的html

我已经阅读了文档,并不太明白该放哪一部分。任何帮助将非常感激。

0 投票
3 回答
3932 浏览

media-queries - Enquire.js + Media.match + Respond.js

我正在尝试让 Enquire.js 为旧版浏览器工作。我正在使用文档中的深度支持方法:

问题是我使用的是来自 initializr.com 的 Modernizr+Respond,所以测试总是通过。这会在 IE8/9 中的 enquire.js 中触发 JS 错误。

通过删除 respond.js 并仅使用普通的 Modernizr 测试失败,Media.match 加载,JS 错误得到解决。但是,我失去了 IE8 中的媒体查询支持。

让所有东西一起工作的最佳方法是什么?我曾尝试通过 Modernizr 同时加载 respond.js 和 Media.match。如果我先加载它,我会看到与以前相同的 JS 错误。如果我第二次加载它,媒体查询将不起作用。我也试过只加载 Media.match 的 INSTEAD,但 JS 错误返回。

谢谢。

编辑:

发布此消息后不久,我回滚查询 1.5.6,使用了 Respond.js、shouldDegrade 选项,并且没有进行 Modernizr 测试。IE8/9 中没有 JS 错误,到目前为止一切似乎都运行良好。

我仍然很想知道是否有办法让它与 2.0 一起使用,或者我现在是否应该坚持使用 1.5.6?

0 投票
0 回答
221 浏览

javascript - 通过 enquire.js 获取媒体查询更改的 css 值

li.active 宽度从 770px 变为 620px,其中 margin-left 从 -30px 变为 -20px,这是 bootstrap span8 项。

问题:似乎在 css 媒体查询之前查询会触发函数,因此在调整窗口大小时它会拾取先前的值。

当我从 1200 切换到 980 时,调整浏览器窗口控制台日志的大小显示 30px 770 而不是 20px 660,而当我从 980 切换回 1200 时,控制台日志显示 20px 620。

0 投票
1 回答
200 浏览

destroy - 禁用平板电脑/移动设备的 jQuery SnapPoint

我对这个有点难过。

我将如何关闭移动/平板电脑(<768px)的以下代码并为桌面(>786px)打开它?

Github:
https ://github.com/robspangler/jquery-snappoint

演示:
http ://robspangler.com/git/jquery-snappoint/demo/demo.html

一个正确方向的点将不胜感激。

0 投票
0 回答
900 浏览

javascript - Enquire.js 匹配两个媒体查询

这是我的两个媒体查询

我正在使用 Enquire.js 来匹配我的媒体查询

问题是如果我从screen and (min-width:1400px) and (min-height:900px)to screen and (min-width:1240px) and (min-height:800px), equire.js 将不匹配screen and (min-width:1240px) and (min-height:800px),这会产生问题。我尝试使用 unmatch 来解决这个问题,但是如果我screen and (min-width:1400px) and (min-height:900px)从小于screen and (min-width:1240px) and (min-height:800px). 任何人有任何解决方案?

0 投票
1 回答
724 浏览

jquery - 使用 enquire.js 更好地理解 jquery

我目前正在尝试提高我对 jQuery 的整体理解,并且遇到了一个我认为可以帮助我实现这一目标的问题。我正在研究enquire.js以增强响应式网站。

这是(简化的)html,其中一小部分详细介绍了公司的服务:

jQuery 用于小于47em 的屏幕:

在这里,我使用 waypoint.js 通过更改类来触发 SVG 图像上的 CSS 过渡 - 一切都是使用 CSS 逐步完成的。

对于较大的屏幕,CSS 隐藏文本 ( .text)并在单击 ( 将类更改为) 以及触发动画 .closed时显示它。article.open

这就是我对 jQuery 的理解需要提高的地方!我知道我可以将这些 jQuery 对象与 enquire.js 一起使用,以根据屏幕大小基本上匹配和取消匹配它们,如下所示:

但我不知道如何最好地创建对象以便可以以这种方式使用它们。我开始研究jQuery 基础知识,但它没有帮助我:(

更新: 尝试但失败

认为.bind/.unbind可能有效。最初在 click 事件上对此进行了测试,但没有奏效 ,我做错了。点击以下作品:

到达那里!

0 投票
0 回答
2626 浏览

javascript - 对象不支持属性或方法 attachEvent

我使用库 enquire.js,很好的库,但是在 ie8 中有一些问题。控制台在文件 enquire.js 中有消息“对象不支持属性或方法 addListener”,好的,使用 google 并找到解决方案:

好的,现在,我收到消息“对象不支持属性或方法 attachEvent”。有任何想法吗?