3.4.0-beta.2
This commit is contained in:
parent
0bc6b1f1b3
commit
3ad118c026
@ -1,4 +1,4 @@
|
|||||||
# v3.4.0-beta.1
|
# v3.4.0
|
||||||
|
|
||||||
- Accessibility improvements (see #905)
|
- Accessibility improvements (see #905)
|
||||||
- Improvements to the way the controls work on iOS
|
- Improvements to the way the controls work on iOS
|
||||||
|
82
dist/plyr.js
vendored
82
dist/plyr.js
vendored
@ -540,7 +540,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
var hide = hidden;
|
var hide = hidden;
|
||||||
|
|
||||||
if (!is.boolean(hide)) {
|
if (!is.boolean(hide)) {
|
||||||
hide = !element.hasAttribute('hidden');
|
hide = !element.hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hide) {
|
if (hide) {
|
||||||
@ -1700,7 +1700,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
bindMenuItemShortcuts: function bindMenuItemShortcuts(menuItem, type) {
|
bindMenuItemShortcuts: function bindMenuItemShortcuts(menuItem, type) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
|
||||||
// Handle space or -> to open menu
|
// Navigate through menus via arrow keys and space
|
||||||
on(menuItem, 'keydown keyup', function (event) {
|
on(menuItem, 'keydown keyup', function (event) {
|
||||||
// We only care about space and ⬆️ ⬇️️ ➡️
|
// We only care about space and ⬆️ ⬇️️ ➡️
|
||||||
if (![32, 38, 39, 40].includes(event.which)) {
|
if (![32, 38, 39, 40].includes(event.which)) {
|
||||||
@ -1743,6 +1743,16 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
|
// Enter will fire a `click` event but we still need to manage focus
|
||||||
|
// So we bind to keyup which fires after and set focus here
|
||||||
|
on(menuItem, 'keyup', function (event) {
|
||||||
|
if (event.which !== 13) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
controls.focusFirstMenuItem.call(_this, null, true);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -1978,7 +1988,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
} else if (matches(range, this.config.selectors.inputs.volume)) {
|
} else if (matches(range, this.config.selectors.inputs.volume)) {
|
||||||
var percent = range.value * 100;
|
var percent = range.value * 100;
|
||||||
range.setAttribute('aria-valuenow', percent);
|
range.setAttribute('aria-valuenow', percent);
|
||||||
range.setAttribute('aria-valuetext', percent + '%');
|
range.setAttribute('aria-valuetext', percent.toFixed(1) + '%');
|
||||||
} else {
|
} else {
|
||||||
range.setAttribute('aria-valuenow', range.value);
|
range.setAttribute('aria-valuenow', range.value);
|
||||||
}
|
}
|
||||||
@ -2415,6 +2425,28 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// Focus the first menu item in a given (or visible) menu
|
||||||
|
focusFirstMenuItem: function focusFirstMenuItem(pane) {
|
||||||
|
var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||||
|
|
||||||
|
if (this.elements.settings.popup.hidden) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var target = pane;
|
||||||
|
|
||||||
|
if (!is.element(target)) {
|
||||||
|
target = Object.values(this.elements.settings.panels).find(function (pane) {
|
||||||
|
return !pane.hidden;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var firstItem = target.querySelector('[role^="menuitem"]');
|
||||||
|
|
||||||
|
setFocus.call(this, firstItem, tabFocus);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
// Show/hide menu
|
// Show/hide menu
|
||||||
toggleMenu: function toggleMenu(input) {
|
toggleMenu: function toggleMenu(input) {
|
||||||
var popup = this.elements.settings.popup;
|
var popup = this.elements.settings.popup;
|
||||||
@ -2427,7 +2459,8 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// True toggle by default
|
// True toggle by default
|
||||||
var hidden = popup.hasAttribute('hidden');
|
var hidden = popup.hidden;
|
||||||
|
|
||||||
var show = hidden;
|
var show = hidden;
|
||||||
|
|
||||||
if (is.boolean(input)) {
|
if (is.boolean(input)) {
|
||||||
@ -2436,19 +2469,13 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
show = false;
|
show = false;
|
||||||
} else if (is.event(input)) {
|
} else if (is.event(input)) {
|
||||||
var isMenuItem = popup.contains(input.target);
|
var isMenuItem = popup.contains(input.target);
|
||||||
var isButton = input.target === button;
|
|
||||||
|
|
||||||
// If the click was inside the menu or if the click
|
// If the click was inside the menu or if the click
|
||||||
// wasn't the button or menu item and we're trying to
|
// wasn't the button or menu item and we're trying to
|
||||||
// show the menu (a doc click shouldn't show the menu)
|
// show the menu (a doc click shouldn't show the menu)
|
||||||
if (isMenuItem || !isMenuItem && !isButton && show) {
|
if (isMenuItem || !isMenuItem && input.target !== button && show) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent the toggle being caught by the doc listener
|
|
||||||
if (isButton) {
|
|
||||||
input.stopPropagation();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set button attributes
|
// Set button attributes
|
||||||
@ -2462,11 +2489,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
// Focus the first item if key interaction
|
// Focus the first item if key interaction
|
||||||
if (show && is.keyboardEvent(input)) {
|
if (show && is.keyboardEvent(input)) {
|
||||||
var pane = Object.values(this.elements.settings.panels).find(function (pane) {
|
controls.focusFirstMenuItem.call(this, null, true);
|
||||||
return !pane.hidden;
|
|
||||||
});
|
|
||||||
var firstItem = pane.querySelector('[role^="menuitem"]');
|
|
||||||
setFocus.call(this, firstItem, true);
|
|
||||||
}
|
}
|
||||||
// If closing, re-focus the button
|
// If closing, re-focus the button
|
||||||
else if (!show && !hidden) {
|
else if (!show && !hidden) {
|
||||||
@ -2558,8 +2581,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
toggleHidden(target, false);
|
toggleHidden(target, false);
|
||||||
|
|
||||||
// Focus the first item
|
// Focus the first item
|
||||||
var firstItem = target.querySelector('[role^="menuitem"]');
|
controls.focusFirstMenuItem.call(this, target, tabFocus);
|
||||||
setFocus.call(this, firstItem, tabFocus);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -2670,7 +2692,6 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
control.appendChild(controls.createButton.call(this, 'settings', {
|
control.appendChild(controls.createButton.call(this, 'settings', {
|
||||||
id: 'plyr-settings-toggle-' + data.id,
|
|
||||||
'aria-haspopup': true,
|
'aria-haspopup': true,
|
||||||
'aria-controls': 'plyr-settings-' + data.id,
|
'aria-controls': 'plyr-settings-' + data.id,
|
||||||
'aria-expanded': false
|
'aria-expanded': false
|
||||||
@ -2679,8 +2700,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
var popup = createElement('div', {
|
var popup = createElement('div', {
|
||||||
class: 'plyr__menu__container',
|
class: 'plyr__menu__container',
|
||||||
id: 'plyr-settings-' + data.id,
|
id: 'plyr-settings-' + data.id,
|
||||||
hidden: '',
|
hidden: ''
|
||||||
'aria-labelled-by': 'plyr-settings-toggle-' + data.id
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var inner = createElement('div');
|
var inner = createElement('div');
|
||||||
@ -4899,6 +4919,9 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
// Settings menu - click toggle
|
// Settings menu - click toggle
|
||||||
this.bind(elements.buttons.settings, 'click', function (event) {
|
this.bind(elements.buttons.settings, 'click', function (event) {
|
||||||
|
// Prevent the document click listener closing the menu
|
||||||
|
event.stopPropagation();
|
||||||
|
|
||||||
controls.toggleMenu.call(player, event);
|
controls.toggleMenu.call(player, event);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -4906,8 +4929,16 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
// We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus
|
// We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus
|
||||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
|
||||||
this.bind(elements.buttons.settings, 'keyup', function (event) {
|
this.bind(elements.buttons.settings, 'keyup', function (event) {
|
||||||
|
var code = event.which;
|
||||||
|
|
||||||
// We only care about space and return
|
// We only care about space and return
|
||||||
if (event.which !== 32 && event.which !== 13) {
|
if (![13, 32].includes(code)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Because return triggers a click anyway, all we need to do is set focus
|
||||||
|
if (code === 13) {
|
||||||
|
controls.focusFirstMenuItem.call(player, null, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4915,13 +4946,12 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
// Prevent playing video (Firefox)
|
// Prevent playing video (Firefox)
|
||||||
if (event.which === 32) {
|
event.stopPropagation();
|
||||||
event.stopPropagation();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Toggle menu
|
// Toggle menu
|
||||||
controls.toggleMenu.call(player, event);
|
controls.toggleMenu.call(player, event);
|
||||||
}, null, false);
|
}, null, false // Can't be passive as we're preventing default
|
||||||
|
);
|
||||||
|
|
||||||
// Escape closes menu
|
// Escape closes menu
|
||||||
this.bind(elements.settings.menu, 'keydown', function (event) {
|
this.bind(elements.settings.menu, 'keydown', function (event) {
|
||||||
|
2
dist/plyr.js.map
vendored
2
dist/plyr.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.min.js
vendored
2
dist/plyr.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.min.js.map
vendored
2
dist/plyr.min.js.map
vendored
File diff suppressed because one or more lines are too long
82
dist/plyr.polyfilled.js
vendored
82
dist/plyr.polyfilled.js
vendored
@ -5937,7 +5937,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
var hide = hidden;
|
var hide = hidden;
|
||||||
|
|
||||||
if (!is$1.boolean(hide)) {
|
if (!is$1.boolean(hide)) {
|
||||||
hide = !element.hasAttribute('hidden');
|
hide = !element.hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hide) {
|
if (hide) {
|
||||||
@ -7097,7 +7097,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
bindMenuItemShortcuts: function bindMenuItemShortcuts(menuItem, type) {
|
bindMenuItemShortcuts: function bindMenuItemShortcuts(menuItem, type) {
|
||||||
var _this = this;
|
var _this = this;
|
||||||
|
|
||||||
// Handle space or -> to open menu
|
// Navigate through menus via arrow keys and space
|
||||||
on(menuItem, 'keydown keyup', function (event) {
|
on(menuItem, 'keydown keyup', function (event) {
|
||||||
// We only care about space and ⬆️ ⬇️️ ➡️
|
// We only care about space and ⬆️ ⬇️️ ➡️
|
||||||
if (![32, 38, 39, 40].includes(event.which)) {
|
if (![32, 38, 39, 40].includes(event.which)) {
|
||||||
@ -7140,6 +7140,16 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, false);
|
}, false);
|
||||||
|
|
||||||
|
// Enter will fire a `click` event but we still need to manage focus
|
||||||
|
// So we bind to keyup which fires after and set focus here
|
||||||
|
on(menuItem, 'keyup', function (event) {
|
||||||
|
if (event.which !== 13) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
controls.focusFirstMenuItem.call(_this, null, true);
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -7375,7 +7385,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
} else if (matches(range, this.config.selectors.inputs.volume)) {
|
} else if (matches(range, this.config.selectors.inputs.volume)) {
|
||||||
var percent = range.value * 100;
|
var percent = range.value * 100;
|
||||||
range.setAttribute('aria-valuenow', percent);
|
range.setAttribute('aria-valuenow', percent);
|
||||||
range.setAttribute('aria-valuetext', percent + '%');
|
range.setAttribute('aria-valuetext', percent.toFixed(1) + '%');
|
||||||
} else {
|
} else {
|
||||||
range.setAttribute('aria-valuenow', range.value);
|
range.setAttribute('aria-valuenow', range.value);
|
||||||
}
|
}
|
||||||
@ -7812,6 +7822,28 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
|
// Focus the first menu item in a given (or visible) menu
|
||||||
|
focusFirstMenuItem: function focusFirstMenuItem(pane) {
|
||||||
|
var tabFocus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
||||||
|
|
||||||
|
if (this.elements.settings.popup.hidden) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var target = pane;
|
||||||
|
|
||||||
|
if (!is$1.element(target)) {
|
||||||
|
target = Object.values(this.elements.settings.panels).find(function (pane) {
|
||||||
|
return !pane.hidden;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
var firstItem = target.querySelector('[role^="menuitem"]');
|
||||||
|
|
||||||
|
setFocus.call(this, firstItem, tabFocus);
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
// Show/hide menu
|
// Show/hide menu
|
||||||
toggleMenu: function toggleMenu(input) {
|
toggleMenu: function toggleMenu(input) {
|
||||||
var popup = this.elements.settings.popup;
|
var popup = this.elements.settings.popup;
|
||||||
@ -7824,7 +7856,8 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// True toggle by default
|
// True toggle by default
|
||||||
var hidden = popup.hasAttribute('hidden');
|
var hidden = popup.hidden;
|
||||||
|
|
||||||
var show = hidden;
|
var show = hidden;
|
||||||
|
|
||||||
if (is$1.boolean(input)) {
|
if (is$1.boolean(input)) {
|
||||||
@ -7833,19 +7866,13 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
show = false;
|
show = false;
|
||||||
} else if (is$1.event(input)) {
|
} else if (is$1.event(input)) {
|
||||||
var isMenuItem = popup.contains(input.target);
|
var isMenuItem = popup.contains(input.target);
|
||||||
var isButton = input.target === button;
|
|
||||||
|
|
||||||
// If the click was inside the menu or if the click
|
// If the click was inside the menu or if the click
|
||||||
// wasn't the button or menu item and we're trying to
|
// wasn't the button or menu item and we're trying to
|
||||||
// show the menu (a doc click shouldn't show the menu)
|
// show the menu (a doc click shouldn't show the menu)
|
||||||
if (isMenuItem || !isMenuItem && !isButton && show) {
|
if (isMenuItem || !isMenuItem && input.target !== button && show) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prevent the toggle being caught by the doc listener
|
|
||||||
if (isButton) {
|
|
||||||
input.stopPropagation();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set button attributes
|
// Set button attributes
|
||||||
@ -7859,11 +7886,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
// Focus the first item if key interaction
|
// Focus the first item if key interaction
|
||||||
if (show && is$1.keyboardEvent(input)) {
|
if (show && is$1.keyboardEvent(input)) {
|
||||||
var pane = Object.values(this.elements.settings.panels).find(function (pane) {
|
controls.focusFirstMenuItem.call(this, null, true);
|
||||||
return !pane.hidden;
|
|
||||||
});
|
|
||||||
var firstItem = pane.querySelector('[role^="menuitem"]');
|
|
||||||
setFocus.call(this, firstItem, true);
|
|
||||||
}
|
}
|
||||||
// If closing, re-focus the button
|
// If closing, re-focus the button
|
||||||
else if (!show && !hidden) {
|
else if (!show && !hidden) {
|
||||||
@ -7955,8 +7978,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
toggleHidden(target, false);
|
toggleHidden(target, false);
|
||||||
|
|
||||||
// Focus the first item
|
// Focus the first item
|
||||||
var firstItem = target.querySelector('[role^="menuitem"]');
|
controls.focusFirstMenuItem.call(this, target, tabFocus);
|
||||||
setFocus.call(this, firstItem, tabFocus);
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
@ -8067,7 +8089,6 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
control.appendChild(controls.createButton.call(this, 'settings', {
|
control.appendChild(controls.createButton.call(this, 'settings', {
|
||||||
id: 'plyr-settings-toggle-' + data.id,
|
|
||||||
'aria-haspopup': true,
|
'aria-haspopup': true,
|
||||||
'aria-controls': 'plyr-settings-' + data.id,
|
'aria-controls': 'plyr-settings-' + data.id,
|
||||||
'aria-expanded': false
|
'aria-expanded': false
|
||||||
@ -8076,8 +8097,7 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
var popup = createElement('div', {
|
var popup = createElement('div', {
|
||||||
class: 'plyr__menu__container',
|
class: 'plyr__menu__container',
|
||||||
id: 'plyr-settings-' + data.id,
|
id: 'plyr-settings-' + data.id,
|
||||||
hidden: '',
|
hidden: ''
|
||||||
'aria-labelled-by': 'plyr-settings-toggle-' + data.id
|
|
||||||
});
|
});
|
||||||
|
|
||||||
var inner = createElement('div');
|
var inner = createElement('div');
|
||||||
@ -10296,6 +10316,9 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
|
|
||||||
// Settings menu - click toggle
|
// Settings menu - click toggle
|
||||||
this.bind(elements.buttons.settings, 'click', function (event) {
|
this.bind(elements.buttons.settings, 'click', function (event) {
|
||||||
|
// Prevent the document click listener closing the menu
|
||||||
|
event.stopPropagation();
|
||||||
|
|
||||||
controls.toggleMenu.call(player, event);
|
controls.toggleMenu.call(player, event);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -10303,8 +10326,16 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
// We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus
|
// We have to bind to keyup otherwise Firefox triggers a click when a keydown event handler shifts focus
|
||||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
|
// https://bugzilla.mozilla.org/show_bug.cgi?id=1220143
|
||||||
this.bind(elements.buttons.settings, 'keyup', function (event) {
|
this.bind(elements.buttons.settings, 'keyup', function (event) {
|
||||||
|
var code = event.which;
|
||||||
|
|
||||||
// We only care about space and return
|
// We only care about space and return
|
||||||
if (event.which !== 32 && event.which !== 13) {
|
if (![13, 32].includes(code)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Because return triggers a click anyway, all we need to do is set focus
|
||||||
|
if (code === 13) {
|
||||||
|
controls.focusFirstMenuItem.call(player, null, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10312,13 +10343,12 @@ typeof navigator === "object" && (function (global, factory) {
|
|||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
// Prevent playing video (Firefox)
|
// Prevent playing video (Firefox)
|
||||||
if (event.which === 32) {
|
event.stopPropagation();
|
||||||
event.stopPropagation();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Toggle menu
|
// Toggle menu
|
||||||
controls.toggleMenu.call(player, event);
|
controls.toggleMenu.call(player, event);
|
||||||
}, null, false);
|
}, null, false // Can't be passive as we're preventing default
|
||||||
|
);
|
||||||
|
|
||||||
// Escape closes menu
|
// Escape closes menu
|
||||||
this.bind(elements.settings.menu, 'keydown', function (event) {
|
this.bind(elements.settings.menu, 'keydown', function (event) {
|
||||||
|
2
dist/plyr.polyfilled.js.map
vendored
2
dist/plyr.polyfilled.js.map
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.polyfilled.min.js
vendored
2
dist/plyr.polyfilled.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/plyr.polyfilled.min.js.map
vendored
2
dist/plyr.polyfilled.min.js.map
vendored
File diff suppressed because one or more lines are too long
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "plyr",
|
"name": "plyr",
|
||||||
"version": "3.4.0-beta.1",
|
"version": "3.4.0-beta.2",
|
||||||
"description":
|
"description":
|
||||||
"A simple, accessible and customizable HTML5, YouTube and Vimeo media player",
|
"A simple, accessible and customizable HTML5, YouTube and Vimeo media player",
|
||||||
"homepage": "https://plyr.io",
|
"homepage": "https://plyr.io",
|
||||||
|
@ -132,13 +132,13 @@ See [initialising](#initialising) for more information on advanced setups.
|
|||||||
You can use our CDN (provided by [Fastly](https://www.fastly.com/)) for the JavaScript. There's 2 versions; one with and one without [polyfills](#polyfills). My recommendation would be to manage polyfills seperately as part of your application but to make life easier you can use the polyfilled build.
|
You can use our CDN (provided by [Fastly](https://www.fastly.com/)) for the JavaScript. There's 2 versions; one with and one without [polyfills](#polyfills). My recommendation would be to manage polyfills seperately as part of your application but to make life easier you can use the polyfilled build.
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="https://cdn.plyr.io/3.4.0-beta.1/plyr.js"></script>
|
<script src="https://cdn.plyr.io/3.4.0-beta.2/plyr.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
...or...
|
...or...
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<script src="https://cdn.plyr.io/3.4.0-beta.1/plyr.polyfilled.js"></script>
|
<script src="https://cdn.plyr.io/3.4.0-beta.2/plyr.polyfilled.js"></script>
|
||||||
```
|
```
|
||||||
|
|
||||||
### CSS
|
### CSS
|
||||||
@ -152,13 +152,13 @@ Include the `plyr.css` stylsheet into your `<head>`
|
|||||||
If you want to use our CDN (provided by [Fastly](https://www.fastly.com/)) for the default CSS, you can use the following:
|
If you want to use our CDN (provided by [Fastly](https://www.fastly.com/)) for the default CSS, you can use the following:
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<link rel="stylesheet" href="https://cdn.plyr.io/3.4.0-beta.1/plyr.css">
|
<link rel="stylesheet" href="https://cdn.plyr.io/3.4.0-beta.2/plyr.css">
|
||||||
```
|
```
|
||||||
|
|
||||||
### SVG Sprite
|
### SVG Sprite
|
||||||
|
|
||||||
The SVG sprite is loaded automatically from our CDN (provided by [Fastly](https://www.fastly.com/)). To change this, see the [options](#options) below. For
|
The SVG sprite is loaded automatically from our CDN (provided by [Fastly](https://www.fastly.com/)). To change this, see the [options](#options) below. For
|
||||||
reference, the CDN hosted SVG sprite can be found at `https://cdn.plyr.io/3.4.0-beta.1/plyr.svg`.
|
reference, the CDN hosted SVG sprite can be found at `https://cdn.plyr.io/3.4.0-beta.2/plyr.svg`.
|
||||||
|
|
||||||
## Ads
|
## Ads
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
// Plyr
|
// Plyr
|
||||||
// plyr.js v3.4.0-beta.1
|
// plyr.js v3.4.0-beta.2
|
||||||
// https://github.com/sampotts/plyr
|
// https://github.com/sampotts/plyr
|
||||||
// License: The MIT License (MIT)
|
// License: The MIT License (MIT)
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
// Plyr Polyfilled Build
|
// Plyr Polyfilled Build
|
||||||
// plyr.js v3.4.0-beta.1
|
// plyr.js v3.4.0-beta.2
|
||||||
// https://github.com/sampotts/plyr
|
// https://github.com/sampotts/plyr
|
||||||
// License: The MIT License (MIT)
|
// License: The MIT License (MIT)
|
||||||
// ==========================================================================
|
// ==========================================================================
|
||||||
|
Loading…
x
Reference in New Issue
Block a user