diff options
author | Jesse Hallett <jesse@galois.com> | 2014-01-06 10:50:22 -0800 |
---|---|---|
committer | Jesse Hallett <jesse@galois.com> | 2014-01-06 11:15:49 -0800 |
commit | 55cd32bfaf9ed5bc5418751369e46fa1d7f098e8 (patch) | |
tree | c5759cf75241a4e6bc0fb31596b69c59a9bdc6b5 /guidelines/wikipedia/src/floatSandwiches.js | |
parent | 0a47eab285bf1c04f48a2d6d84838a98807c8c69 (diff) |
Moves rule files to src/
Diffstat (limited to 'guidelines/wikipedia/src/floatSandwiches.js')
-rw-r--r-- | guidelines/wikipedia/src/floatSandwiches.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/guidelines/wikipedia/src/floatSandwiches.js b/guidelines/wikipedia/src/floatSandwiches.js new file mode 100644 index 0000000..ecdcdba --- /dev/null +++ b/guidelines/wikipedia/src/floatSandwiches.js @@ -0,0 +1,29 @@ +exports.name = "Floating content on both sides of screen"; +exports.description = "Be careful not to add images or other floating content on both sides of the screen simultaneously."; + +exports.rule = function(report) { + var $topElems = $5('#mw-content-text > *'); + var left = floating($topElems, 'left').toArray().map($); + var right = floating($topElems, 'right').toArray().map($); + + left.forEach(function($l) { + var ltop = $l.offset().top; + var lbottom = ltop + $l.outerHeight(); + + if (right.some(function($r) { + var rtop = $r.offset().top; + var rbottom = rtop + $r.outerHeight(); + + return (rtop > ltop && rtop < lbottom) || + (rbottom > ltop && rbottom < lbottom); + })) { + report.warning('Left and right floating elements overlap vertically.', $l.get(0)); + } + }); +}; + +function floating($elems, leftOrRight) { + return $elems.filter(function() { + return $(this).css('float') === leftOrRight; + }); +} |