Skip to content
This repository was archived by the owner on Jan 23, 2024. It is now read-only.

Commit 39b2122

Browse files
committed
Dispatch event when gfy video is loaded (general event and event-0 with index of element in collection)
1 parent f3bcb86 commit 39b2122

File tree

6 files changed

+30
-8
lines changed

6 files changed

+30
-8
lines changed

build/gfycat.js

+10-2
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ var gfyCollection = function () {
4444
for (var i = 0; i < elem_coll.length; i++) {
4545
// don't need to worry about finding existing gfyitems - they are
4646
// replaced by gfyObject
47-
var gfyObj = new gfyObject(elem_coll[i]);
47+
var gfyObj = new gfyObject(elem_coll[i], i);
4848
collection.push(gfyObj);
4949
}
5050
// run init _after_ all are collected, because the init function deletes and recreates
@@ -73,8 +73,9 @@ var gfyCollection = function () {
7373
* for interacting with its own gfycat video.
7474
*/
7575

76-
var gfyObject = function (gfyElem) {
76+
var gfyObject = function (gfyElem, gfyIndex) {
7777
var gfyRootElem = gfyElem;
78+
var gfyElemIndex = gfyIndex;
7879
var gfyId;
7980
// Options are set by data- attributes on tag
8081
var optExpand; // Option: will video grow to fill space
@@ -439,6 +440,13 @@ var gfyObject = function (gfyElem) {
439440
}
440441

441442
function vidLoaded() {
443+
//emit custom events when loaded (general loaded, loaded + index)
444+
var event = new Event('gfyLoaded'),
445+
eventIndexed = new Event('gfyLoaded-'+gfyElemIndex);
446+
// Dispatch the event.
447+
document.dispatchEvent(event);
448+
document.dispatchEvent(eventIndexed);
449+
442450
setSize();
443451
if (!ctrlBox) {
444452
createCtrlBox();

build/gfycat.min.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/build/gfycat.js

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

demo/index.html

+6
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ <h3>Load gif</h3>
6363
// or run gfyCollection.init() when ready
6464
$(function() {
6565
gfyCollection.init();
66+
$(document).on('gfyLoaded', function(){
67+
console.log('gfyLoaded');
68+
});
69+
$(document).one('gfyLoaded-0', function(){
70+
console.log('gfyLoaded-0');
71+
});
6672
});
6773
</script>
6874
</body>

js/gfyCollection.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ var gfyCollection = function () {
4444
for (var i = 0; i < elem_coll.length; i++) {
4545
// don't need to worry about finding existing gfyitems - they are
4646
// replaced by gfyObject
47-
var gfyObj = new gfyObject(elem_coll[i]);
47+
var gfyObj = new gfyObject(elem_coll[i], i);
4848
collection.push(gfyObj);
4949
}
5050
// run init _after_ all are collected, because the init function deletes and recreates

js/gfyObject.js

+9-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
* for interacting with its own gfycat video.
77
*/
88

9-
var gfyObject = function (gfyElem) {
9+
var gfyObject = function (gfyElem, gfyIndex) {
1010
var gfyRootElem = gfyElem;
11+
var gfyElemIndex = gfyIndex;
1112
var gfyId;
1213
// Options are set by data- attributes on tag
1314
var optExpand; // Option: will video grow to fill space
@@ -372,6 +373,13 @@ var gfyObject = function (gfyElem) {
372373
}
373374

374375
function vidLoaded() {
376+
//emit custom events when loaded (general loaded, loaded + index)
377+
var event = new Event('gfyLoaded'),
378+
eventIndexed = new Event('gfyLoaded-'+gfyElemIndex);
379+
// Dispatch the event.
380+
document.dispatchEvent(event);
381+
document.dispatchEvent(eventIndexed);
382+
375383
setSize();
376384
if (!ctrlBox) {
377385
createCtrlBox();

0 commit comments

Comments
 (0)