diff options
author | Sam Potts <me@sampotts.me> | 2015-06-27 16:21:38 +1000 |
---|---|---|
committer | Sam Potts <me@sampotts.me> | 2015-06-27 16:21:38 +1000 |
commit | 240aa7aa5f77902fd8dbeebc1a7239e6f0e20c56 (patch) | |
tree | 648c5b057bb190f7ce0d858f845db71d3292d4e5 /docs/src | |
parent | 398815857f05dad8c0b2d6b1d58c40eb90df2d11 (diff) | |
parent | 654e9cd623212a5bebf3930972ef04d5e2d2bbcb (diff) | |
download | plyr-240aa7aa5f77902fd8dbeebc1a7239e6f0e20c56.tar.lz plyr-240aa7aa5f77902fd8dbeebc1a7239e6f0e20c56.tar.xz plyr-240aa7aa5f77902fd8dbeebc1a7239e6f0e20c56.zip |
Merge branch 'master' into develop
# Conflicts:
# dist/plyr.css
# dist/plyr.js
Diffstat (limited to 'docs/src')
-rw-r--r-- | docs/src/js/docs.js | 111 | ||||
-rw-r--r-- | docs/src/less/docs.less | 98 |
2 files changed, 195 insertions, 14 deletions
diff --git a/docs/src/js/docs.js b/docs/src/js/docs.js index 18e88d90..072a9236 100644 --- a/docs/src/js/docs.js +++ b/docs/src/js/docs.js @@ -7,6 +7,7 @@ // Setup the player plyr.setup({ debug: true, + volume: 9, title: "Video demo", html: templates.controls.render({}), captions: { @@ -25,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 "★ " + 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..d4ef32b9 100644 --- a/docs/src/less/docs.less +++ b/docs/src/less/docs.less @@ -12,14 +12,16 @@ // Variables // --------------------------------------- // Colors -@blue: #3498DB; +@blue: #3498db; @gray-dark: #343f4a; @gray: #565d64; @gray-light: #cbd0d3; +@off-white: #f2f5f7; // Elements @link-color: @blue; @padding-base: 20px; +@arrow-size: 8px; // Breakpoints @screen-md: 768px; @@ -33,10 +35,10 @@ // Base body { font-family: "Avenir", "Helvetica Neue", Helvetica, Arial, sans-serif; - background: #fff; + background: @off-white; line-height: 1.5; text-align: center; - color: #6D797F; + color: @gray; } // Error page @@ -102,6 +104,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 +137,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; |