aboutsummaryrefslogtreecommitdiffstats
path: root/docs/src
diff options
context:
space:
mode:
authorSam Potts <me@sampotts.me>2015-06-07 23:00:26 +1000
committerSam Potts <me@sampotts.me>2015-06-07 23:00:26 +1000
commit4c17f985208c147294cff0f05c39617d13e61efd (patch)
tree9bf10b19ce13af98bac1fb725e798f7a3c0e30b9 /docs/src
parentdf84ce6e90b1e4bad78939cf4095493bd2e17b11 (diff)
downloadplyr-4c17f985208c147294cff0f05c39617d13e61efd.tar.lz
plyr-4c17f985208c147294cff0f05c39617d13e61efd.tar.xz
plyr-4c17f985208c147294cff0f05c39617d13e61efd.zip
TogglePlay API method (Fixes #86), Volume border (Fixes #87), Chrome Subs (Fixes #90)
Diffstat (limited to 'docs/src')
-rw-r--r--docs/src/js/docs.js110
-rw-r--r--docs/src/less/docs.less91
2 files changed, 190 insertions, 11 deletions
diff --git a/docs/src/js/docs.js b/docs/src/js/docs.js
index 46f20f26..072a9236 100644
--- a/docs/src/js/docs.js
+++ b/docs/src/js/docs.js
@@ -26,6 +26,116 @@ plyr.setup({
}
});
+// Popup
+function popup(event) {
+ // Prevent the link opening
+ if(event.target.nodeName.toLowerCase() == "a") {
+ if(event.preventDefault) {
+ event.preventDefault();
+ }
+ else {
+ event.returnValue = false;
+ }
+ }
+
+ var link = event.target,
+ url = link.href,
+ width = link.getAttribute("data-window-width") || 600,
+ height = link.getAttribute("data-window-height") || 600,
+ name = link.getAttribute("data-window-name") || "popup";
+
+ // If window exists, just focus it
+ if(window["window-"+name] && !window["window-"+name].closed) {
+ window["window-"+name].focus();
+ }
+ else {
+ // Get position
+ var left = window.screenLeft !== undefined ? window.screenLeft : screen.left;
+ var top = window.screenTop !== undefined ? window.screenTop : screen.top;
+
+ // Open in the centre of the screen
+ var x = (screen.width / 2) - (width / 2) + left,
+ y = (screen.height / 2) - (height / 2) + top;
+
+ // Open that window
+ window["window-"+name] = window.open(url, name, "top=" + y +",left="+ x +",width=" + width + ",height=" + height);
+
+ // Focus new window
+ window["window-"+name].focus();
+ }
+}
+
+// Trigger popups
+document.querySelector(".js-popup").addEventListener("click", popup);
+
+// Get JSONP
+function getJSONP(url, callback) {
+ var name = "jsonp_callback_" + Math.round(100000 * Math.random());
+
+ // Cleanup to prevent memory leaks and hit original callback
+ window[name] = function(data) {
+ delete window[name];
+ document.body.removeChild(script);
+ callback(data);
+ };
+
+ // Create a faux script
+ var script = document.createElement("script");
+ script.setAttribute("src", url + (url.indexOf("?") >= 0 ? "&" : "?") + "callback=" + name);
+
+ // Inject to the body
+ document.body.appendChild(script);
+}
+
+// Get star count
+var storageSupported = ("sessionStorage" in window),
+ selectors = {
+ github: ".js-stargazers-count",
+ twitter: ".js-tweet-count"
+ };
+
+// Display the count next to the button
+function displayCount(selector, count) {
+ document.querySelector(selector).innerHTML = count;
+}
+
+// Add star
+function formatGitHubCount(count) {
+ return "&bigstar; " + count;
+}
+
+// Check if it's in session storage first
+if(storageSupported && "github_stargazers" in window.sessionStorage) {
+ displayCount(selectors.github, formatGitHubCount(window.sessionStorage.github_stargazers));
+}
+else {
+ getJSONP("https://api.github.com/repos/selz/plyr?access_token=a46ac653210ba6a6be44260c29c333470c3fbbf5", function (json) {
+ if (json && typeof json.data.stargazers_count !== "undefined") {
+ // Update UI
+ displayCount(selectors.github, formatGitHubCount(json.data.stargazers_count));
+
+ // Store in session storage
+ window.sessionStorage.github_stargazers = json.data.stargazers_count;
+ }
+ });
+}
+
+// Get tweet count
+if(storageSupported && "tweets" in window.sessionStorage) {
+ displayCount(selectors.twitter, window.sessionStorage.tweets);
+}
+else {
+ getJSONP("https://cdn.api.twitter.com/1/urls/count.json?url=plyr.io", function (json) {
+ if (json && typeof json.count !== "undefined") {
+ // Update UI
+ displayCount(selectors.twitter, json.count);
+
+ // Store in session storage
+ window.sessionStorage.tweets = json.count;
+ }
+ });
+}
+
// Google analytics
// For demo site (http://[www.]plyr.io) only
diff --git a/docs/src/less/docs.less b/docs/src/less/docs.less
index f68e0148..32d25b02 100644
--- a/docs/src/less/docs.less
+++ b/docs/src/less/docs.less
@@ -20,6 +20,7 @@
// Elements
@link-color: @blue;
@padding-base: 20px;
+@arrow-size: 8px;
// Breakpoints
@screen-md: 768px;
@@ -102,6 +103,22 @@ section {
}
// Links & Buttons
+.actions {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ font-size: 0;
+
+ li {
+ display: inline-block;
+ margin-top: (@padding-base / 2);
+ .font-size();
+ white-space: nowrap;
+ }
+ li + li {
+ margin-left: @padding-base;
+ }
+}
a {
text-decoration: none;
color: @link-color;
@@ -119,41 +136,93 @@ a {
border: 0;
}
}
-.btn {
+.btn,
+.btn-count {
display: inline-block;
- padding: (@padding-base / 2) (@padding-base * 1.5);
- background: @link-color;
- border: 0;
- color: #fff;
+ vertical-align: middle;
+ border-radius: 3px;
.font-smoothing(on);
font-weight: 600;
- border-radius: 3px;
user-select: none;
+}
+.btn {
+ padding: (@padding-base / 2) @padding-base;
+ background: @link-color;
+ border: 0;
+ color: #fff;
&:hover,
&:focus {
color: #fff;
background: darken(@link-color, 5%);
}
+
+ &-twitter {
+ background: #8799A2;
+
+ &:hover,
+ &:focus {
+ background: darken(#8799A2, 5%);
+ }
+ }
+}
+.btn-count {
+ position: relative;
+ margin-left: 6px;
+ padding: ((@padding-base / 2) - 1px);
+ background: #fff;
+ border: 1px solid @gray-light;
+
+ &::before {
+ content: "";
+ position: absolute;
+ display: block;
+ width: @arrow-size;
+ height: @arrow-size;
+ left: 1px;
+ top: 50%;
+ margin-top: -(@arrow-size / 2);
+
+ background: inherit;
+ border: inherit;
+ border-width: 1px 0 0 1px;
+ transform: rotate(-45deg) translate(-50%, -50%);
+ }
}
-// Players
+// Example players
+.example-audio .player,
+.example-video .player {
+ margin: 0 auto @padding-base;
+
+ &-controls {
+ border-radius: 0 0 4px 4px;
+ }
+}
.example-audio .player {
max-width: 520px;
+
+ &-controls {
+ border-radius: 4px;
+ }
+ &-progress {
+ border-radius: 4px 4px 0 0;
+ overflow: hidden;
+ }
}
.example-video .player {
max-width: 1200px;
-}
-.example-audio .player,
-.example-video .player {
- margin: 0 auto @padding-base;
+ video {
+ border-radius: 4px 4px 0 0;
+ }
&-fullscreen,
&.fullscreen-active {
max-width: none;
}
}
+
// Footer
footer {
margin-bottom: @padding-base;