2010-07-15 40 views

回答

4

不真的,你發佈的是最好的方式。

但如果它是你更經常地做一些事情,我會考慮它抽象爲僞選擇:

Selectors.Pseudo.fixed = function(){ 
    return this.getStyle("position") == "fixed"; 
}; 

// can now use it as a part of a normal selector: 
console.log(document.getElements("div:fixed")); 

附:這將在mootools 1.3中打破,因爲浮油使用不同的選擇器引擎。

,使其在1.3的工作要做:

Slick.definePseudo('fixed',function() { 
    return this.getStyle("position") == "fixed"; 
}); 

最後,使其更加靈活,因此您可以查找任何CSS屬性作爲選擇的一部分,你可以做這樣的事情:

Selectors.Pseudo.style = function(key) { 
    var styles = key.split("="); 
    return styles.length == 2 && this.getStyle(styles[0]) == styles[1]; 
}; 

和mootools的1.3:

Slick.definePseudo('style', function(key) { 
    var styles = key.split("="); 
    return styles.length == 2 && this.getStyle(styles[0]) == styles[1]; 
}); 

如何使用它:

console.log(document.getElements("div:style(position=fixed)")); 

http://www.jsfiddle.net/h7JPS/3/

+0

哇! (yadayada) – knittl 2010-07-15 09:05:39

+0

感謝您讓我參與[Slick - 官方Mootools項目](http://github.com/mootools/slick「Mootool在GitHub上的Slick」) – GoalBased 2010-07-16 06:13:03

0

我會建議你做一個CSS類

.fixed_pos 
{ 
    position: fixed; 
} 

此類應用到你想要的元素,然後

$$(".fixed_pos"); 

這將會給你所有的元素

+1

這是真實的,但對我來說,我與未知CSS和HTML工作,所以我不能依靠這樣一類的存在。 (我的代碼是一個將被注入頁面的小部件。) – GoalBased 2010-07-15 20:02:42

相關問題