豆瓣电影搜索影院悬浮框自动收起是如何实现的?
解决豆瓣电影搜索影院悬浮框自动收起问题
在浏览豆瓣电影时,用户可能会遇到这样的情况:点击“影院”后出现搜索框悬浮框,而当点击悬浮框外的区域时,该悬浮框会自动隐藏。本文将探究实现这一效果的方法。
一个可行的解决方案是给 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 事件,事件处理程序检查目标节点是否包含在悬浮框中。如果没有,则隐藏悬浮框,从而实现预期的效果。
以上就是豆瓣电影搜索影院悬浮框自动收起是如何实现的?的详细内容,更多请关注其它相关文章!