Filter & sort magical layouts http://isotope.metafizzy.co
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

125 lines
2.7 KiB

QUnit.test( 'arrangeComplete', function( assert ) {
'use strict';
var iso = new Isotope( '#arrange-complete', {
layoutMode: 'fitRows',
transitionDuration: '0.1s'
});
var done = assert.async();
var tests = [
function() {
iso.once( 'arrangeComplete', function() {
assert.ok( true, 'arrangeComplete after some were filtered' );
next();
});
iso.arrange({
filter: '.a1'
});
},
function() {
iso.once( 'arrangeComplete', function() {
assert.ok( true, 'after some revealed, some hidden, some same' );
next();
});
iso.arrange({
filter: '.b2'
});
},
function() {
iso.once( 'arrangeComplete', function() {
assert.ok( true, 'after random sort' );
next();
});
iso.arrange({
sortBy: 'random'
});
},
function() {
var ticks = 0;
function onArrangeComplete() {
ticks++;
if ( ticks == 2) {
assert.ok( true, 'after layout mid-way thru transition' );
iso.off( 'arrangeComplete', onArrangeComplete );
next();
} else if ( ticks > 2 ) {
assert.ok( false, 'more ticks happened' );
}
}
iso.on( 'arrangeComplete', onArrangeComplete );
iso.arrange({
filter: '.a2',
transitionDuration: '0.6s'
});
setTimeout( function() {
iso.arrange({
filter: '.b2'
});
}, 300 );
},
// stagger
function() {
iso.once( 'arrangeComplete', function() {
assert.ok( true, 'arrangeComplete with stagger' );
next();
});
iso.arrange({
stagger: 100,
sortBy: 'random',
filter: '*',
transitionDuration: '0.4s'
});
},
// stagger, triggered mid-transition
function() {
var ticks = 0;
function onArrangeComplete() {
ticks++;
if ( ticks == 2) {
assert.ok( true, 'after layout mid-way thru transition, with stagger' );
iso.off( 'arrangeComplete', onArrangeComplete );
iso.options.stagger = 0;
next();
} else if ( ticks > 2 ) {
assert.ok( false, 'more ticks happened' );
}
}
iso.on( 'arrangeComplete', onArrangeComplete );
iso.arrange({
stagger: 100,
sortBy: 'random',
transitionDuration: '0.4s'
});
setTimeout( function() {
iso.arrange({
filter: '.a1'
});
}, 250 );
}
];
function next() {
if ( tests.length ) {
var nextTest = tests.shift();
// HACK for consecutive arrangeComplete calls
setTimeout( nextTest );
} else {
done();
}
}
next();
});