-
Notifications
You must be signed in to change notification settings - Fork 317
/
Copy pathadd-remove.html
102 lines (82 loc) · 2.67 KB
/
add-remove.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>add/remove</title>
<link rel="stylesheet" href="css/examples.css" />
<link rel="stylesheet" href="css/basics.css" />
</head>
<body>
<h1>add/remove</h1>
<p>
<button id="append">Append items</button>
<button id="prepend">Prepend items</button>
</p>
<div class="container">
<div class="item w2"></div>
<div class="item h4"></div>
<div class="item w2"></div>
<div class="item h4"></div>
<div class="item"></div>
<div class="item h2"></div>
<div class="item w4"></div>
<div class="item w4"></div>
<div class="item w4"></div>
</div>
<script src="../bower_components/get-size/get-size.js"></script>
<script src="../bower_components/desandro-matches-selector/matches-selector.js"></script>
<script src="../bower_components/ev-emitter/ev-emitter.js"></script>
<script src="../bower_components/fizzy-ui-utils/utils.js"></script>
<script src="../bower_components/outlayer/item.js"></script>
<script src="../bower_components/outlayer/outlayer.js"></script>
<script src="../js/rect.js"></script>
<script src="../js/packer.js"></script>
<script src="../js/item.js"></script>
<script src="../js/packery.js"></script>
<script src="examples.js"></script>
<script>
function getItemFragment() {
var fragment = document.createDocumentFragment();
var items = [];
for ( var i=0; i < 3; i++ ) {
var item = document.createElement('div');
var wRand = Math.random();
var widthClass = wRand > 0.85 ? 'w4' :
wRand > 0.7 ? 'w2' : '';
var hRand = Math.random();
var heightClass = hRand > 0.85 ? 'h4' :
hRand > 0.7 ? 'h2' : '';
item.className = 'item ' + widthClass + ' ' + heightClass;
fragment.appendChild( item );
items.push( item )
}
return {
items: items,
fragment: fragment
};
}
var container = document.querySelector('.container');
var pckry = window.packery7 = new Packery( container );
var appendButton = document.querySelector('#append');
appendButton.addEventListener( 'click', function( event ) {
var itemFrag = getItemFragment();
container.appendChild( itemFrag.fragment );
pckry.appended( itemFrag.items );
});
var prependButton = document.querySelector('#prepend');
prependButton.addEventListener( 'click', function( event ) {
var itemFrag = getItemFragment();
container.insertBefore( itemFrag.fragment, container.firstChild );
pckry.prepended( itemFrag.items );
});
container.addEventListener( 'click', function( event ) {
var elem = event.target;
if ( !matchesSelector( elem, '.item' ) ) {
return;
}
pckry.remove( elem );
pckry.layout();
});
</script>
</body>
</html>