使用MooTools获取所有可见元素

Yos*_*osi 4 javascript mootools css-selectors

我正在从jQuery转移到MooTools(为了好玩..)我有这行代码:

$subMenus = $headMenu.find('li ul.sub_menu:visible');
Run Code Online (Sandbox Code Playgroud)

我怎么能用mootools写这个?
我知道我可以使用getElements但是如何检查可见的ul?(我正在使用这个(:可见)选择器).

编辑 -

我实现了自己的功能:

  function findVisibleElements(elementsCollection){
    var returnArray = [];
    elementsCollection.each(function(el){
      if(el.getStyle('display') === 'block'){
        returnArray.push(el);
      }
    });

    return returnArray;
  }
Run Code Online (Sandbox Code Playgroud)

我想要的是向上滑动所有可见的子菜单,这就是我写的:

// Sliding up the visible sub menus 
if( visibleSubMenus.length > 0 ){
  visibleSubMenus.each(function(el){
      var slider = new Fx.Slide(el, {duration: 2000});
      slider.slideOut();
  });
}
Run Code Online (Sandbox Code Playgroud)

为什么我的代码不工作?我的功能正在运行,问题在于Fx.Slide.
我用Fx.Slide添加了更多mootools.

Osk*_*zyk 8

只需扩展选择器功能 - 它就是MooTools!

$extend(Selectors.Pseudo, {
    visible: function() {
        if (this.getStyle('visibility') != 'hidden' && this.isVisible() && this.isDisplayed()) {
            return this;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

之后,只需执行常规操作即可$$('div:visible')返回可见的元​​素.

看看我创建的示例:http://www.jsfiddle.net/oskar/zwFeV/