JS / Jquery:启动窗口调整大小而不实际调整大小

时间:2017-07-04 22:06:51

标签: javascript jquery

所以我最近遇到了一个非常具体的问题(就在我们明天计划的发布日之前),我并不完全确定如何解决它。我已经使用我适度的前端技能构建了我们的HTML模板网站,我们对它非常满意。但是,我似乎无法解决这个问题。

问题: 我有一个过滤系统,允许用户过滤页面上显示的文章。用户甚至可以在主页上填写此过滤器,指向包含文章的页面并应用过滤器。但是,如果那时过滤器变宽(不太严格)并且新文章出现,则图片不会显示。发现这种情况是因为它背后的弹性滑板必须再次初始化,这发生在窗户负载上(例如,当窗口调整大小时)。控制flexslider初始化的函数在外部js文件中,我不确定是否可以从我自己的custom.js文件调用它,所以我想只是调用一个resize / reload窗口函数来激活它

问题: 我可以运行调整大小窗口函数(或激活flexslider的东西)而不会妨碍用户体验(更具体地说,没有实际调整大小/重新加载窗口)?我将在过滤器的更改中运行它。

我知道这是一个非常具体的问题,但希望有人可以帮助我。

小心!

P.S。如果我可以运行加载flexslider的实际函数但是它位于外部js文件中,那将是理想的。

编辑: 简要介绍一些其他信息。如果我直接进入文章页面,它没有过滤器活动,因此显示所有文章,如果我然后开始翻阅过滤器,一切都很好。但是,只有当我从主页到达时才会出现问题。然后,您将到达文章页面,该页面仅显示边界内的文章,并且当过滤器被删除时,加载显示的新文章的图像时出现问题。好像它没有加载它们,因为它们第一次没有在窗口加载时打开。

2 个答案:

答案 0 :(得分:1)

您可以通过创建新事件并将其传递到Dim ALongTime As Integer = 2000 System.Threading.Thread.Sleep(ALongTime) 上的dispatchEvent命令来触发调整大小事件。有一个nice guide here。您希望事件类型为window,因为这就是它正在侦听的内容。

resize

这适用于通过jQuery添加的事件以及通过window.dispatchEvent(new Event('resize')) 添加的事件。

答案 1 :(得分:1)

我设法通过延迟将过滤器值丢弃到输入中的函数来解决它,因此它在应用过滤器之前最初加载到所有图像中。它以这样的速度发生,几乎不可察觉。

此外,我确实试图启动一个窗口调整大小功能,它确实工作而没有实际调整任何大小,但不幸的是图像没有正确加载(重叠等)。

无论如何,它已经解决了。感谢所有的投入!