豆瓣电影搜索影院悬浮框自动收起是如何实现的?

豆瓣电影搜索影院悬浮框自动收起是如何实现的?

解决豆瓣电影搜索影院悬浮框自动收起问题

在浏览豆瓣电影时,用户可能会遇到这样的情况:点击“影院”后出现搜索框悬浮框,而当点击悬浮框外的区域时,该悬浮框会自动隐藏。本文将探究实现这一效果的方法。

一个可行的解决方案是给 body 绑定一个 click 事件,然后在事件处理程序中检查点击的目标节点是否包含在悬浮框 div 中。如果不包含,则触发悬浮框的隐藏。

豆瓣电影使用了这种方法。其 javascript 代码如下:

t("body").click(function(e) {
    t.contains(f.$results[0], e.target) || t(e.target).is("#cinemas-suggestion-input input") || f.hide()
})

在这个代码中,f.$results[0] 是悬浮框 div 元素,t.contains() 函数判断目标节点是否包含在该 div 中。如果目标节点不包含在 div 中,或者不是搜索框输入框(#cinemas-suggestion-input input),则悬浮框将被隐藏(f.hide())。

因此,当用户点击悬浮框外的区域时,触发 body 的 click 事件,事件处理程序检查目标节点是否包含在悬浮框中。如果没有,则隐藏悬浮框,从而实现预期的效果。

以上就是豆瓣电影搜索影院悬浮框自动收起是如何实现的?的详细内容,更多请关注www.sxiaw.com其它相关文章!