first commit
This commit is contained in:
213
api/jquery/plugins/magnific-popup/Magnific-Popup/Gruntfile.js
vendored
Executable file
213
api/jquery/plugins/magnific-popup/Magnific-Popup/Gruntfile.js
vendored
Executable file
@@ -0,0 +1,213 @@
|
||||
/**
|
||||
*
|
||||
* Run 'grunt' to generate JS and CSS in folder 'dist' and site in folder '_site'
|
||||
* *
|
||||
* Run 'grunt watch' to automatically regenerate '_site' when you change files in 'src' or in 'website'
|
||||
*
|
||||
*/
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
'use strict';
|
||||
|
||||
var jekyllConfig = "isLocal : false \r\n"+
|
||||
"permalink: /:title/ \r\n"+
|
||||
"exclude: ['.json', '.rvmrc', '.rbenv-version', 'README.md', 'Rakefile', 'changelog.md', 'compiler.jar', 'private', 'magnific-popup.sublime-project', 'magnific-popup.sublime-workspace', '.htaccess'] \r\n"+
|
||||
"auto: true \r\n"+
|
||||
"mfpversion: <%= pkg.version %> \r\n"+
|
||||
"pygments: true \r\n";
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
// Metadata.
|
||||
pkg: grunt.file.readJSON('magnific-popup.jquery.json'),
|
||||
|
||||
banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' +
|
||||
'<%= grunt.template.today("yyyy-mm-dd") %>\n' +
|
||||
'<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' +
|
||||
'* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>; */\n',
|
||||
|
||||
// Task configuration.
|
||||
clean: {
|
||||
files: ['dist']
|
||||
},
|
||||
|
||||
sass: {
|
||||
dist: {
|
||||
files: {
|
||||
'dist/magnific-popup.css': 'src/css/main.scss'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
jshint: {
|
||||
all: [
|
||||
'Gruntfile.js',
|
||||
'src/js/*.js'
|
||||
],
|
||||
options: {
|
||||
jshintrc: '.jshintrc'
|
||||
}
|
||||
},
|
||||
|
||||
mfpbuild: {
|
||||
all: {
|
||||
src: [
|
||||
'inline',
|
||||
'ajax',
|
||||
'image',
|
||||
'zoom',
|
||||
'iframe',
|
||||
'gallery',
|
||||
'retina',
|
||||
],
|
||||
basePath: 'src/js/',
|
||||
dest: 'dist/jquery.magnific-popup.js',
|
||||
banner: '<%= banner %>'
|
||||
}
|
||||
},
|
||||
jekyll: {
|
||||
dev: {
|
||||
options: {
|
||||
src: 'website',
|
||||
dest: '_site',
|
||||
url: 'local',
|
||||
raw: jekyllConfig + "url: local"
|
||||
}
|
||||
},
|
||||
production: {
|
||||
options: {
|
||||
src: 'website',
|
||||
dest: '_production',
|
||||
url: 'production',
|
||||
raw: jekyllConfig + "url: production"
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
copy: {
|
||||
main: {
|
||||
files: [
|
||||
{expand:true, src: ['dist/**'], dest: 'website/'}
|
||||
]
|
||||
},
|
||||
dev: {
|
||||
files: [
|
||||
{expand:true, src: ['dist/**'], dest: '_site/'}
|
||||
]
|
||||
}
|
||||
},
|
||||
|
||||
uglify: {
|
||||
my_target: {
|
||||
files: {
|
||||
'dist/jquery.magnific-popup.min.js': ['dist/jquery.magnific-popup.js']
|
||||
},
|
||||
preserveComments: 'some'
|
||||
},
|
||||
options: {
|
||||
preserveComments: 'some'
|
||||
}
|
||||
},
|
||||
|
||||
watch: { // for development run 'grunt watch'
|
||||
jekyll: {
|
||||
files: ['website/**'],
|
||||
tasks: ['jekyll:dev', 'copy:dev']
|
||||
},
|
||||
files: ['src/**'],
|
||||
tasks: [ 'sass', 'mfpbuild', 'copy:dev', 'uglify']
|
||||
},
|
||||
|
||||
cssmin: {
|
||||
compress: {
|
||||
files: {
|
||||
"website/site-assets/all.min.css": ["website/site-assets/site.css", "website/dist/magnific-popup.css"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
// Makes Magnific Popup JS file.
|
||||
// grunt mfpbuild --mfp-exclude=ajax,image
|
||||
grunt.task.registerMultiTask('mfpbuild', 'Makes Magnific Popup JS file.', function() {
|
||||
|
||||
var files = this.data.src,
|
||||
includes = grunt.option('mfp-exclude'),
|
||||
basePath = this.data.basePath,
|
||||
newContents = this.data.banner + ";(function (factory) { \n" +
|
||||
"if (typeof define === 'function' && define.amd) { \n" +
|
||||
" // AMD. Register as an anonymous module. \n" +
|
||||
" define(['jquery'], factory); \n" +
|
||||
" } else if (typeof exports === 'object') { \n" +
|
||||
" // Node/CommonJS \n" +
|
||||
" factory(require('jquery')); \n" +
|
||||
" } else { \n" +
|
||||
" // Browser globals \n" +
|
||||
" factory(window.jQuery || window.Zepto); \n" +
|
||||
" } \n" +
|
||||
" }(function($) { \n";
|
||||
|
||||
if(includes) {
|
||||
includes = includes.split(/[\s,]+/); // 'a,b,c' => ['a','b','c']
|
||||
var removeA = function (arr) {
|
||||
var what, a = arguments, L = a.length, ax;
|
||||
while (L > 1 && arr.length) {
|
||||
what = a[--L];
|
||||
while ((ax= arr.indexOf(what)) !== -1) {
|
||||
arr.splice(ax, 1);
|
||||
}
|
||||
}
|
||||
return arr;
|
||||
};
|
||||
|
||||
includes.forEach(function( name ) {
|
||||
if(name) {
|
||||
|
||||
grunt.log.writeln( 'removed "'+name +'"' );
|
||||
files = removeA(files, name);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
files.unshift('core');
|
||||
|
||||
grunt.log.writeln( 'Your build is made of:'+files );
|
||||
|
||||
files.forEach(function( name ) {
|
||||
// Wrap each module with a pience of code to be able to exlude it, stolen for modernizr.com
|
||||
newContents += "\n/*>>"+name+"*/\n";
|
||||
newContents += grunt.file.read( basePath + name + '.js' ) + '\n';
|
||||
newContents += "\n/*>>"+name+"*/\n";
|
||||
});
|
||||
newContents+= " _checkInstance(); }));";
|
||||
|
||||
grunt.file.write( this.data.dest, newContents );
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// These plugins provide necessary tasks.
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
grunt.loadNpmTasks('grunt-sass');
|
||||
grunt.loadNpmTasks('grunt-contrib-copy');
|
||||
grunt.loadNpmTasks('grunt-jekyll');
|
||||
grunt.loadNpmTasks('grunt-contrib-cssmin');
|
||||
|
||||
// Default task.
|
||||
grunt.registerTask('default', ['sass', 'mfpbuild', 'uglify', 'copy', 'jekyll:dev']);
|
||||
|
||||
grunt.registerTask('production', ['sass', 'mfpbuild', 'uglify', 'copy', 'cssmin', 'jekyll:production']);
|
||||
grunt.registerTask('nosite', ['sass', 'mfpbuild', 'uglify']);
|
||||
grunt.registerTask('hint', ['jshint']);
|
||||
|
||||
};
|
20
api/jquery/plugins/magnific-popup/Magnific-Popup/LICENSE
Executable file
20
api/jquery/plugins/magnific-popup/Magnific-Popup/LICENSE
Executable file
@@ -0,0 +1,20 @@
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2016 Dmitry Semenov, http://dimsemenov.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
101
api/jquery/plugins/magnific-popup/Magnific-Popup/README.md
Executable file
101
api/jquery/plugins/magnific-popup/Magnific-Popup/README.md
Executable file
@@ -0,0 +1,101 @@
|
||||
> # 🇺🇦 UKRAINE NEEDS YOUR HELP NOW!
|
||||
>
|
||||
> I'm the creator of this project and I'm Ukrainian.
|
||||
>
|
||||
> **My country, Ukraine, [is being invaded by the Russian Federation, right now](https://www.bbc.com/news/world-europe-60504334)**. I've fled Kyiv and now I'm safe with my family in the western part of Ukraine. At least for now.
|
||||
> Russia is hitting target all over my country by ballistic missiles.
|
||||
>
|
||||
> **Please, save me and help to save my country!**
|
||||
>
|
||||
> Ukrainian National Bank opened [an account to Raise Funds for Ukraine’s Armed Forces](https://bank.gov.ua/en/news/all/natsionalniy-bank-vidkriv-spetsrahunok-dlya-zboru-koshtiv-na-potrebi-armiyi):
|
||||
>
|
||||
> ```
|
||||
> SWIFT Code NBU: NBUA UA UX
|
||||
> JP MORGAN CHASE BANK, New York
|
||||
> SWIFT Code: CHASUS33
|
||||
> Account: 400807238
|
||||
> 383 Madison Avenue, New York, NY 10179, USA
|
||||
> IBAN: UA843000010000000047330992708
|
||||
> ```
|
||||
>
|
||||
> You can also donate to [charity supporting Ukrainian army](https://savelife.in.ua/en/donate/).
|
||||
>
|
||||
> **THANK YOU!**
|
||||
|
||||
|
||||
# Magnific Popup Repository
|
||||
|
||||
[](https://travis-ci.org/dimsemenov/Magnific-Popup)
|
||||
[](https://flattr.com/thing/1310305/Magnific-Popup-by-dimsemenov)
|
||||
|
||||
Fast, light and responsive lightbox plugin, for jQuery and Zepto.js.
|
||||
|
||||
- [Documentation and getting started guide](http://dimsemenov.com/plugins/magnific-popup/documentation.html).
|
||||
- [Examples and plugin home page](http://dimsemenov.com/plugins/magnific-popup/).
|
||||
- More examples in [CodePen collection](http://codepen.io/collection/nLcqo).
|
||||
|
||||
Optionally, install via Bower `bower install magnific-popup` or npm: `npm install magnific-popup`.
|
||||
[Ruby gem](https://rubygems.org/gems/magnific-popup-rails): `gem install magnific-popup-rails`.
|
||||
|
||||
## Extensions
|
||||
|
||||
- WordPress plugin - [under development](http://dimsemenov.com/plugins/magnific-popup/wordpress.html).
|
||||
- [Drupal module](https://drupal.org/project/magnific_popup).
|
||||
- [Concrete5 add-on](https://github.com/cdowdy/concrete5-Magnific-Popup).
|
||||
- [Redaxo add-on](http://www.redaxo.org/de/download/addons/?addon_id=1131).
|
||||
- [Contao extension](https://github.com/fritzmg/contao-magnific-popup).
|
||||
|
||||
If you created an extension for some CMS, email me and I'll add it to this list.
|
||||
|
||||
## Location of stuff
|
||||
|
||||
- Generated popup JS and CSS files are in folder [dist/](https://github.com/dimsemenov/Magnific-Popup/tree/master/dist). (Online build tool is on [documentation page](http://dimsemenov.com/plugins/magnific-popup/documentation.html)).
|
||||
- Source files are in folder [src/](https://github.com/dimsemenov/Magnific-Popup/tree/master/src). They include [Sass CSS file](https://github.com/dimsemenov/Magnific-Popup/blob/master/src/css/main.scss) and js parts (edit them if you wish to submit commit).
|
||||
- Website (examples & documentation) is in folder [website/](https://github.com/dimsemenov/Magnific-Popup/tree/master/website).
|
||||
- Documentation page itself is in [website/documentation.md](https://github.com/dimsemenov/Magnific-Popup/blob/master/website/documentation.md) (contributions to it are very welcome).
|
||||
|
||||
|
||||
|
||||
## Using Magnific Popup?
|
||||
|
||||
If you used Magnific Popup in some interesting way, or on site of popular brand, I'd be very grateful if you <a href='mailto:diiiimaaaa@gmail.com?subject="Site that uses Magnific Popup"'>email me</a> a link to it.
|
||||
|
||||
|
||||
## Build
|
||||
|
||||
To compile Magnific Popup by yourself, first of make sure that you have [Node.js](http://nodejs.org/), [Grunt.js](https://github.com/cowboy/grunt), [Ruby](http://www.ruby-lang.org/) and [Jekyll](https://github.com/mojombo/jekyll/) installed, then:
|
||||
|
||||
1) Copy repository
|
||||
|
||||
git clone https://github.com/dimsemenov/Magnific-Popup.git
|
||||
|
||||
2) Go inside Magnific Popup folder that you fetched and install Node dependencies
|
||||
|
||||
cd Magnific-Popup && npm install
|
||||
|
||||
3) Now simply run `grunt` to generate JS and CSS in folder `dist` and site in folder `_site/`.
|
||||
|
||||
grunt
|
||||
|
||||
Optionally:
|
||||
|
||||
- Run `grunt watch` to automatically rebuild script when you change files in `src/` or in `website/`.
|
||||
- If you don't have and don't want to install Jekyll, run `grunt nosite` to just build JS and CSS files related to popup in `dist/`.
|
||||
|
||||
|
||||
|
||||
## [Changelog](https://github.com/dimsemenov/Magnific-Popup/releases)
|
||||
|
||||
## License
|
||||
|
||||
Script is MIT licensed and free and will always be kept this way. But has a small restriction from me - please do not create public WordPress plugin based on it(or at least contact me before creating it), because I will make it and it'll be open source too ([want to get notified?](http://dimsemenov.com/subscribe.html)).
|
||||
|
||||
Created by [@dimsemenov](http://twitter.com/dimsemenov) & [contributors](https://github.com/dimsemenov/Magnific-Popup/contributors).
|
||||
|
||||
[](https://bitdeli.com/free "Bitdeli Badge")
|
||||
|
||||
## Bugs & contributing
|
||||
|
||||
Please report bugs via GitHub and ask general questions through [Stack Overflow](http://stackoverflow.com/questions/tagged/magnific-popup). Feel free to submit commit [pull-request](https://github.com/dimsemenov/Magnific-Popup/pulls), even the tiniest contributions to the script or to the documentation are very welcome.
|
||||
|
||||
|
16
api/jquery/plugins/magnific-popup/Magnific-Popup/bower.json
Executable file
16
api/jquery/plugins/magnific-popup/Magnific-Popup/bower.json
Executable file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"name": "magnific-popup",
|
||||
"main": [
|
||||
"dist/jquery.magnific-popup.js",
|
||||
"dist/magnific-popup.css"
|
||||
],
|
||||
"dependencies": {
|
||||
"jquery": ">=1.8.0"
|
||||
},
|
||||
"ignore": [
|
||||
"node_modules/",
|
||||
"components/",
|
||||
"website/",
|
||||
"libs/"
|
||||
]
|
||||
}
|
5
api/jquery/plugins/magnific-popup/Magnific-Popup/composer.json
Executable file
5
api/jquery/plugins/magnific-popup/Magnific-Popup/composer.json
Executable file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "dimsemenov/magnific-popup",
|
||||
"description": "Light and responsive lightbox script with focus on performance.",
|
||||
"homepage": "http://dimsemenov.com/plugins/magnific-popup/"
|
||||
}
|
1860
api/jquery/plugins/magnific-popup/Magnific-Popup/dist/jquery.magnific-popup.js
vendored
Executable file
1860
api/jquery/plugins/magnific-popup/Magnific-Popup/dist/jquery.magnific-popup.js
vendored
Executable file
File diff suppressed because it is too large
Load Diff
4
api/jquery/plugins/magnific-popup/Magnific-Popup/dist/jquery.magnific-popup.min.js
vendored
Executable file
4
api/jquery/plugins/magnific-popup/Magnific-Popup/dist/jquery.magnific-popup.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
351
api/jquery/plugins/magnific-popup/Magnific-Popup/dist/magnific-popup.css
vendored
Executable file
351
api/jquery/plugins/magnific-popup/Magnific-Popup/dist/magnific-popup.css
vendored
Executable file
@@ -0,0 +1,351 @@
|
||||
/* Magnific Popup CSS */
|
||||
.mfp-bg {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1042;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
background: #0b0b0b;
|
||||
opacity: 0.8; }
|
||||
|
||||
.mfp-wrap {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: 1043;
|
||||
position: fixed;
|
||||
outline: none !important;
|
||||
-webkit-backface-visibility: hidden; }
|
||||
|
||||
.mfp-container {
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
padding: 0 8px;
|
||||
box-sizing: border-box; }
|
||||
|
||||
.mfp-container:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
vertical-align: middle; }
|
||||
|
||||
.mfp-align-top .mfp-container:before {
|
||||
display: none; }
|
||||
|
||||
.mfp-content {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
z-index: 1045; }
|
||||
|
||||
.mfp-inline-holder .mfp-content,
|
||||
.mfp-ajax-holder .mfp-content {
|
||||
width: 100%;
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-ajax-cur {
|
||||
cursor: progress; }
|
||||
|
||||
.mfp-zoom-out-cur, .mfp-zoom-out-cur .mfp-image-holder .mfp-close {
|
||||
cursor: -moz-zoom-out;
|
||||
cursor: -webkit-zoom-out;
|
||||
cursor: zoom-out; }
|
||||
|
||||
.mfp-zoom {
|
||||
cursor: pointer;
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in; }
|
||||
|
||||
.mfp-auto-cursor .mfp-content {
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-close,
|
||||
.mfp-arrow,
|
||||
.mfp-preloader,
|
||||
.mfp-counter {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.mfp-loading.mfp-figure {
|
||||
display: none; }
|
||||
|
||||
.mfp-hide {
|
||||
display: none !important; }
|
||||
|
||||
.mfp-preloader {
|
||||
color: #CCC;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
margin-top: -0.8em;
|
||||
left: 8px;
|
||||
right: 8px;
|
||||
z-index: 1044; }
|
||||
.mfp-preloader a {
|
||||
color: #CCC; }
|
||||
.mfp-preloader a:hover {
|
||||
color: #FFF; }
|
||||
|
||||
.mfp-s-ready .mfp-preloader {
|
||||
display: none; }
|
||||
|
||||
.mfp-s-error .mfp-content {
|
||||
display: none; }
|
||||
|
||||
button.mfp-close,
|
||||
button.mfp-arrow {
|
||||
overflow: visible;
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
display: block;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
z-index: 1046;
|
||||
box-shadow: none;
|
||||
touch-action: manipulation; }
|
||||
|
||||
button::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0; }
|
||||
|
||||
.mfp-close {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
opacity: 0.65;
|
||||
padding: 0 0 18px 10px;
|
||||
color: #FFF;
|
||||
font-style: normal;
|
||||
font-size: 28px;
|
||||
font-family: Arial, Baskerville, monospace; }
|
||||
.mfp-close:hover,
|
||||
.mfp-close:focus {
|
||||
opacity: 1; }
|
||||
.mfp-close:active {
|
||||
top: 1px; }
|
||||
|
||||
.mfp-close-btn-in .mfp-close {
|
||||
color: #333; }
|
||||
|
||||
.mfp-image-holder .mfp-close,
|
||||
.mfp-iframe-holder .mfp-close {
|
||||
color: #FFF;
|
||||
right: -6px;
|
||||
text-align: right;
|
||||
padding-right: 6px;
|
||||
width: 100%; }
|
||||
|
||||
.mfp-counter {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: #CCC;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
white-space: nowrap; }
|
||||
|
||||
.mfp-arrow {
|
||||
position: absolute;
|
||||
opacity: 0.65;
|
||||
margin: 0;
|
||||
top: 50%;
|
||||
margin-top: -55px;
|
||||
padding: 0;
|
||||
width: 90px;
|
||||
height: 110px;
|
||||
-webkit-tap-highlight-color: transparent; }
|
||||
.mfp-arrow:active {
|
||||
margin-top: -54px; }
|
||||
.mfp-arrow:hover,
|
||||
.mfp-arrow:focus {
|
||||
opacity: 1; }
|
||||
.mfp-arrow:before,
|
||||
.mfp-arrow:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
margin-top: 35px;
|
||||
margin-left: 35px;
|
||||
border: medium inset transparent; }
|
||||
.mfp-arrow:after {
|
||||
border-top-width: 13px;
|
||||
border-bottom-width: 13px;
|
||||
top: 8px; }
|
||||
.mfp-arrow:before {
|
||||
border-top-width: 21px;
|
||||
border-bottom-width: 21px;
|
||||
opacity: 0.7; }
|
||||
|
||||
.mfp-arrow-left {
|
||||
left: 0; }
|
||||
.mfp-arrow-left:after {
|
||||
border-right: 17px solid #FFF;
|
||||
margin-left: 31px; }
|
||||
.mfp-arrow-left:before {
|
||||
margin-left: 25px;
|
||||
border-right: 27px solid #3F3F3F; }
|
||||
|
||||
.mfp-arrow-right {
|
||||
right: 0; }
|
||||
.mfp-arrow-right:after {
|
||||
border-left: 17px solid #FFF;
|
||||
margin-left: 39px; }
|
||||
.mfp-arrow-right:before {
|
||||
border-left: 27px solid #3F3F3F; }
|
||||
|
||||
.mfp-iframe-holder {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px; }
|
||||
.mfp-iframe-holder .mfp-content {
|
||||
line-height: 0;
|
||||
width: 100%;
|
||||
max-width: 900px; }
|
||||
.mfp-iframe-holder .mfp-close {
|
||||
top: -40px; }
|
||||
|
||||
.mfp-iframe-scaler {
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
padding-top: 56.25%; }
|
||||
.mfp-iframe-scaler iframe {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
||||
background: #000; }
|
||||
|
||||
/* Main image in popup */
|
||||
img.mfp-img {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
line-height: 0;
|
||||
box-sizing: border-box;
|
||||
padding: 40px 0 40px;
|
||||
margin: 0 auto; }
|
||||
|
||||
/* The shadow behind the image */
|
||||
.mfp-figure {
|
||||
line-height: 0; }
|
||||
.mfp-figure:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 40px;
|
||||
bottom: 40px;
|
||||
display: block;
|
||||
right: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
box-shadow: 0 0 8px rgba(0, 0, 0, 0.6);
|
||||
background: #444; }
|
||||
.mfp-figure small {
|
||||
color: #BDBDBD;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px; }
|
||||
.mfp-figure figure {
|
||||
margin: 0; }
|
||||
|
||||
.mfp-bottom-bar {
|
||||
margin-top: -36px;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
cursor: auto; }
|
||||
|
||||
.mfp-title {
|
||||
text-align: left;
|
||||
line-height: 18px;
|
||||
color: #F3F3F3;
|
||||
word-wrap: break-word;
|
||||
padding-right: 36px; }
|
||||
|
||||
.mfp-image-holder .mfp-content {
|
||||
max-width: 100%; }
|
||||
|
||||
.mfp-gallery .mfp-image-holder .mfp-figure {
|
||||
cursor: pointer; }
|
||||
|
||||
@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px) {
|
||||
/**
|
||||
* Remove all paddings around the image on small screen
|
||||
*/
|
||||
.mfp-img-mobile .mfp-image-holder {
|
||||
padding-left: 0;
|
||||
padding-right: 0; }
|
||||
.mfp-img-mobile img.mfp-img {
|
||||
padding: 0; }
|
||||
.mfp-img-mobile .mfp-figure:after {
|
||||
top: 0;
|
||||
bottom: 0; }
|
||||
.mfp-img-mobile .mfp-figure small {
|
||||
display: inline;
|
||||
margin-left: 5px; }
|
||||
.mfp-img-mobile .mfp-bottom-bar {
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
bottom: 0;
|
||||
margin: 0;
|
||||
top: auto;
|
||||
padding: 3px 5px;
|
||||
position: fixed;
|
||||
box-sizing: border-box; }
|
||||
.mfp-img-mobile .mfp-bottom-bar:empty {
|
||||
padding: 0; }
|
||||
.mfp-img-mobile .mfp-counter {
|
||||
right: 5px;
|
||||
top: 3px; }
|
||||
.mfp-img-mobile .mfp-close {
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
padding: 0; } }
|
||||
|
||||
@media all and (max-width: 900px) {
|
||||
.mfp-arrow {
|
||||
-webkit-transform: scale(0.75);
|
||||
transform: scale(0.75); }
|
||||
.mfp-arrow-left {
|
||||
-webkit-transform-origin: 0;
|
||||
transform-origin: 0; }
|
||||
.mfp-arrow-right {
|
||||
-webkit-transform-origin: 100%;
|
||||
transform-origin: 100%; }
|
||||
.mfp-container {
|
||||
padding-left: 6px;
|
||||
padding-right: 6px; } }
|
12
api/jquery/plugins/magnific-popup/Magnific-Popup/libs/jquery-loader.js
vendored
Executable file
12
api/jquery/plugins/magnific-popup/Magnific-Popup/libs/jquery-loader.js
vendored
Executable file
@@ -0,0 +1,12 @@
|
||||
(function() {
|
||||
// Default to the local version.
|
||||
var path = '../libs/jquery/jquery.js';
|
||||
// Get any jquery=___ param from the query string.
|
||||
var jqversion = location.search.match(/[?&]jquery=(.*?)(?=&|$)/);
|
||||
// If a version was specified, use that version from code.jquery.com.
|
||||
if (jqversion) {
|
||||
path = 'http://code.jquery.com/jquery-' + jqversion[1] + '.js';
|
||||
}
|
||||
// This is the only time I'll ever use document.write, I promise!
|
||||
document.write('<script src="' + path + '"></script>');
|
||||
}());
|
9555
api/jquery/plugins/magnific-popup/Magnific-Popup/libs/jquery/jquery.js
vendored
Executable file
9555
api/jquery/plugins/magnific-popup/Magnific-Popup/libs/jquery/jquery.js
vendored
Executable file
File diff suppressed because it is too large
Load Diff
244
api/jquery/plugins/magnific-popup/Magnific-Popup/libs/qunit/qunit.css
Executable file
244
api/jquery/plugins/magnific-popup/Magnific-Popup/libs/qunit/qunit.css
Executable file
@@ -0,0 +1,244 @@
|
||||
/**
|
||||
* QUnit v1.11.0 - A JavaScript Unit Testing Framework
|
||||
*
|
||||
* http://qunitjs.com
|
||||
*
|
||||
* Copyright 2012 jQuery Foundation and other contributors
|
||||
* Released under the MIT license.
|
||||
* http://jquery.org/license
|
||||
*/
|
||||
|
||||
/** Font Family and Sizes */
|
||||
|
||||
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
|
||||
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
|
||||
#qunit-tests { font-size: smaller; }
|
||||
|
||||
|
||||
/** Resets */
|
||||
|
||||
#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/** Header */
|
||||
|
||||
#qunit-header {
|
||||
padding: 0.5em 0 0.5em 1em;
|
||||
|
||||
color: #8699a4;
|
||||
background-color: #0d3349;
|
||||
|
||||
font-size: 1.5em;
|
||||
line-height: 1em;
|
||||
font-weight: normal;
|
||||
|
||||
border-radius: 5px 5px 0 0;
|
||||
-moz-border-radius: 5px 5px 0 0;
|
||||
-webkit-border-top-right-radius: 5px;
|
||||
-webkit-border-top-left-radius: 5px;
|
||||
}
|
||||
|
||||
#qunit-header a {
|
||||
text-decoration: none;
|
||||
color: #c2ccd1;
|
||||
}
|
||||
|
||||
#qunit-header a:hover,
|
||||
#qunit-header a:focus {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar label {
|
||||
display: inline-block;
|
||||
padding: 0 .5em 0 .1em;
|
||||
}
|
||||
|
||||
#qunit-banner {
|
||||
height: 5px;
|
||||
}
|
||||
|
||||
#qunit-testrunner-toolbar {
|
||||
padding: 0.5em 0 0.5em 2em;
|
||||
color: #5E740B;
|
||||
background-color: #eee;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
#qunit-userAgent {
|
||||
padding: 0.5em 0 0.5em 2.5em;
|
||||
background-color: #2b81af;
|
||||
color: #fff;
|
||||
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
|
||||
}
|
||||
|
||||
#qunit-modulefilter-container {
|
||||
float: right;
|
||||
}
|
||||
|
||||
/** Tests: Pass/Fail */
|
||||
|
||||
#qunit-tests {
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#qunit-tests li {
|
||||
padding: 0.4em 0.5em 0.4em 2.5em;
|
||||
border-bottom: 1px solid #fff;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#qunit-tests li strong {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#qunit-tests li a {
|
||||
padding: 0.5em;
|
||||
color: #c2ccd1;
|
||||
text-decoration: none;
|
||||
}
|
||||
#qunit-tests li a:hover,
|
||||
#qunit-tests li a:focus {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
#qunit-tests li .runtime {
|
||||
float: right;
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
.qunit-assert-list {
|
||||
margin-top: 0.5em;
|
||||
padding: 0.5em;
|
||||
|
||||
background-color: #fff;
|
||||
|
||||
border-radius: 5px;
|
||||
-moz-border-radius: 5px;
|
||||
-webkit-border-radius: 5px;
|
||||
}
|
||||
|
||||
.qunit-collapsed {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#qunit-tests table {
|
||||
border-collapse: collapse;
|
||||
margin-top: .2em;
|
||||
}
|
||||
|
||||
#qunit-tests th {
|
||||
text-align: right;
|
||||
vertical-align: top;
|
||||
padding: 0 .5em 0 0;
|
||||
}
|
||||
|
||||
#qunit-tests td {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
#qunit-tests pre {
|
||||
margin: 0;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
#qunit-tests del {
|
||||
background-color: #e0f2be;
|
||||
color: #374e0c;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#qunit-tests ins {
|
||||
background-color: #ffcaca;
|
||||
color: #500;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/*** Test Counts */
|
||||
|
||||
#qunit-tests b.counts { color: black; }
|
||||
#qunit-tests b.passed { color: #5E740B; }
|
||||
#qunit-tests b.failed { color: #710909; }
|
||||
|
||||
#qunit-tests li li {
|
||||
padding: 5px;
|
||||
background-color: #fff;
|
||||
border-bottom: none;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
/*** Passing Styles */
|
||||
|
||||
#qunit-tests li li.pass {
|
||||
color: #3c510c;
|
||||
background-color: #fff;
|
||||
border-left: 10px solid #C6E746;
|
||||
}
|
||||
|
||||
#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
|
||||
#qunit-tests .pass .test-name { color: #366097; }
|
||||
|
||||
#qunit-tests .pass .test-actual,
|
||||
#qunit-tests .pass .test-expected { color: #999999; }
|
||||
|
||||
#qunit-banner.qunit-pass { background-color: #C6E746; }
|
||||
|
||||
/*** Failing Styles */
|
||||
|
||||
#qunit-tests li li.fail {
|
||||
color: #710909;
|
||||
background-color: #fff;
|
||||
border-left: 10px solid #EE5757;
|
||||
white-space: pre;
|
||||
}
|
||||
|
||||
#qunit-tests > li:last-child {
|
||||
border-radius: 0 0 5px 5px;
|
||||
-moz-border-radius: 0 0 5px 5px;
|
||||
-webkit-border-bottom-right-radius: 5px;
|
||||
-webkit-border-bottom-left-radius: 5px;
|
||||
}
|
||||
|
||||
#qunit-tests .fail { color: #000000; background-color: #EE5757; }
|
||||
#qunit-tests .fail .test-name,
|
||||
#qunit-tests .fail .module-name { color: #000000; }
|
||||
|
||||
#qunit-tests .fail .test-actual { color: #EE5757; }
|
||||
#qunit-tests .fail .test-expected { color: green; }
|
||||
|
||||
#qunit-banner.qunit-fail { background-color: #EE5757; }
|
||||
|
||||
|
||||
/** Result */
|
||||
|
||||
#qunit-testresult {
|
||||
padding: 0.5em 0.5em 0.5em 2.5em;
|
||||
|
||||
color: #2b81af;
|
||||
background-color: #D2E0E6;
|
||||
|
||||
border-bottom: 1px solid white;
|
||||
}
|
||||
#qunit-testresult .module-name {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/** Fixture */
|
||||
|
||||
#qunit-fixture {
|
||||
position: absolute;
|
||||
top: -10000px;
|
||||
left: -10000px;
|
||||
width: 1000px;
|
||||
height: 1000px;
|
||||
}
|
2152
api/jquery/plugins/magnific-popup/Magnific-Popup/libs/qunit/qunit.js
vendored
Executable file
2152
api/jquery/plugins/magnific-popup/Magnific-Popup/libs/qunit/qunit.js
vendored
Executable file
File diff suppressed because it is too large
Load Diff
29
api/jquery/plugins/magnific-popup/Magnific-Popup/magnific-popup.jquery.json
Executable file
29
api/jquery/plugins/magnific-popup/Magnific-Popup/magnific-popup.jquery.json
Executable file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "magnific-popup",
|
||||
"title": "Magnific Popup",
|
||||
"description": "Fast, light, mobile-friendly and responsive lightbox and modal dialog plugin. Open inline HTML, ajax loaded content, image, form, iframe (YouTube video, Vimeo, Google Maps), photo gallery. Animation effects added with CSS3 transitions. For jQuery or Zepto.",
|
||||
"version": "1.1.0",
|
||||
"homepage": "http://dimsemenov.com/plugins/magnific-popup/",
|
||||
"demo": "http://dimsemenov.com/plugins/magnific-popup/",
|
||||
"docs": "http://dimsemenov.com/plugins/magnific-popup/documentation.html",
|
||||
"author": {
|
||||
"name": "Dmitry Semenov",
|
||||
"email": "diiiimaaaa@gmail.com",
|
||||
"url": "http://dimsemenov.com"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/dimsemenov/Magnific-Popup.git"
|
||||
},
|
||||
"bugs": "https://github.com/dimsemenov/Magnific-Popup/issues",
|
||||
"dependencies": {
|
||||
"jquery": ">=1.8.0"
|
||||
},
|
||||
"keywords": ["lightbox","popup","modal","window","dialog","ui","gallery","slideshow","video","image","ajax","html5","animation","jquery","photo","responsive","mobile"],
|
||||
"licenses": [
|
||||
{
|
||||
"type": "MIT",
|
||||
"url": "http://www.opensource.org/licenses/mit-license.php"
|
||||
}
|
||||
]
|
||||
}
|
55
api/jquery/plugins/magnific-popup/Magnific-Popup/package.json
Executable file
55
api/jquery/plugins/magnific-popup/Magnific-Popup/package.json
Executable file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"name": "magnific-popup",
|
||||
"version": "1.1.0",
|
||||
"title": "Magnific Popup",
|
||||
"description": "Lightbox and modal dialog plugin. Can display inline HTML, iframes (YouTube video, Vimeo, Google Maps), or an image gallery. Animation effects are added with CSS3 transitions. For jQuery or Zepto.",
|
||||
"keywords": [
|
||||
"ecosystem:jquery",
|
||||
"jquery-plugin",
|
||||
"zepto",
|
||||
"lightbox",
|
||||
"popup",
|
||||
"modal",
|
||||
"window",
|
||||
"dialog",
|
||||
"gallery",
|
||||
"jquery",
|
||||
"photo",
|
||||
"responsive",
|
||||
"mobile"
|
||||
],
|
||||
"author": {
|
||||
"name": "Dmitry Semenov",
|
||||
"email": "diiiimaaaa@gmail.com",
|
||||
"web": "http://dimsemenov.com"
|
||||
},
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/dimsemenov/Magnific-Popup/issues"
|
||||
},
|
||||
"main": "dist/jquery.magnific-popup.js",
|
||||
"style": "dist/magnific-popup.css",
|
||||
"homepage": "http://dimsemenov.com/plugins/magnific-popup/",
|
||||
"engines": {
|
||||
"node": ">= 0.8.0"
|
||||
},
|
||||
"scripts": {
|
||||
"test": "grunt jshint"
|
||||
},
|
||||
"devDependencies": {
|
||||
"grunt": "~0.4.5",
|
||||
"grunt-contrib-clean": "~0.6.0",
|
||||
"grunt-contrib-concat": "^0.5.1",
|
||||
"grunt-contrib-copy": "~0.8.1",
|
||||
"grunt-contrib-cssmin": "^0.14.0",
|
||||
"grunt-contrib-jshint": "~0.11.3",
|
||||
"grunt-contrib-uglify": "~0.9.2",
|
||||
"grunt-contrib-watch": "~0.6.1",
|
||||
"grunt-jekyll": "~0.4.2",
|
||||
"grunt-sass": "~1.0.0"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/dimsemenov/Magnific-Popup.git"
|
||||
}
|
||||
}
|
44
api/jquery/plugins/magnific-popup/Magnific-Popup/src/css/_settings.scss
Executable file
44
api/jquery/plugins/magnific-popup/Magnific-Popup/src/css/_settings.scss
Executable file
@@ -0,0 +1,44 @@
|
||||
////////////////////////
|
||||
// Settings //
|
||||
////////////////////////
|
||||
|
||||
// overlay
|
||||
$mfp-overlay-color: #0b0b0b !default; // Color of overlay screen
|
||||
$mfp-overlay-opacity: 0.8 !default; // Opacity of overlay screen
|
||||
$mfp-shadow: 0 0 8px rgba(0, 0, 0, 0.6) !default; // Shadow on image or iframe
|
||||
|
||||
// spacing
|
||||
$mfp-popup-padding-left: 8px !default; // Padding from left and from right side
|
||||
$mfp-popup-padding-left-mobile: 6px !default; // Same as above, but is applied when width of window is less than 800px
|
||||
|
||||
$mfp-z-index-base: 1040 !default; // Base z-index of popup
|
||||
|
||||
// controls
|
||||
$mfp-include-arrows: true !default; // Include styles for nav arrows
|
||||
$mfp-controls-opacity: 0.65 !default; // Opacity of controls
|
||||
$mfp-controls-color: #FFF !default; // Color of controls
|
||||
$mfp-controls-border-color: #3F3F3F !default; // Border color of controls
|
||||
$mfp-inner-close-icon-color: #333 !default; // Color of close button when inside
|
||||
$mfp-controls-text-color: #CCC !default; // Color of preloader and "1 of X" indicator
|
||||
$mfp-controls-text-color-hover: #FFF !default; // Hover color of preloader and "1 of X" indicator
|
||||
|
||||
// Iframe-type options
|
||||
$mfp-include-iframe-type: true !default; // Enable Iframe-type popups
|
||||
$mfp-iframe-padding-top: 40px !default; // Iframe padding top
|
||||
$mfp-iframe-background: #000 !default; // Background color of iframes
|
||||
$mfp-iframe-max-width: 900px !default; // Maximum width of iframes
|
||||
$mfp-iframe-ratio: 9/16 !default; // Ratio of iframe (9/16 = widescreen, 3/4 = standard, etc.)
|
||||
|
||||
// Image-type options
|
||||
$mfp-include-image-type: true !default; // Enable Image-type popups
|
||||
$mfp-image-background: #444 !default;
|
||||
$mfp-image-padding-top: 40px !default; // Image padding top
|
||||
$mfp-image-padding-bottom: 40px !default; // Image padding bottom
|
||||
$mfp-include-mobile-layout-for-image: true !default; // Removes paddings from top and bottom
|
||||
|
||||
// Image caption options
|
||||
$mfp-caption-title-color: #F3F3F3 !default; // Caption title color
|
||||
$mfp-caption-subtitle-color: #BDBDBD !default; // Caption subtitle color
|
||||
|
||||
// A11y
|
||||
$mfp-use-visuallyhidden: false !default; // Hide content from browsers, but make it available for screen readers
|
543
api/jquery/plugins/magnific-popup/Magnific-Popup/src/css/main.scss
Executable file
543
api/jquery/plugins/magnific-popup/Magnific-Popup/src/css/main.scss
Executable file
@@ -0,0 +1,543 @@
|
||||
/* Magnific Popup CSS */
|
||||
|
||||
@import "settings";
|
||||
|
||||
////////////////////////
|
||||
//
|
||||
// Contents:
|
||||
//
|
||||
// 1. General styles
|
||||
// - Transluscent overlay
|
||||
// - Containers, wrappers
|
||||
// - Cursors
|
||||
// - Helper classes
|
||||
// 2. Appearance
|
||||
// - Preloader & text that displays error messages
|
||||
// - CSS reset for buttons
|
||||
// - Close icon
|
||||
// - "1 of X" counter
|
||||
// - Navigation (left/right) arrows
|
||||
// - Iframe content type styles
|
||||
// - Image content type styles
|
||||
// - Media query where size of arrows is reduced
|
||||
// - IE7 support
|
||||
//
|
||||
////////////////////////
|
||||
|
||||
|
||||
|
||||
////////////////////////
|
||||
// 1. General styles
|
||||
////////////////////////
|
||||
|
||||
// Transluscent overlay
|
||||
.mfp-bg {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: $mfp-z-index-base + 2;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
|
||||
background: $mfp-overlay-color;
|
||||
opacity: $mfp-overlay-opacity;
|
||||
}
|
||||
|
||||
// Wrapper for popup
|
||||
.mfp-wrap {
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
z-index: $mfp-z-index-base + 3;
|
||||
position: fixed;
|
||||
outline: none !important;
|
||||
-webkit-backface-visibility: hidden; // fixes webkit bug that can cause "false" scrollbar
|
||||
}
|
||||
|
||||
// Root container
|
||||
.mfp-container {
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
padding: 0 $mfp-popup-padding-left;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
// Vertical centerer helper
|
||||
.mfp-container {
|
||||
&:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
|
||||
// Remove vertical centering when popup has class `mfp-align-top`
|
||||
.mfp-align-top {
|
||||
.mfp-container {
|
||||
&:before {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Popup content holder
|
||||
.mfp-content {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin: 0 auto;
|
||||
text-align: left;
|
||||
z-index: $mfp-z-index-base + 5;
|
||||
}
|
||||
.mfp-inline-holder,
|
||||
.mfp-ajax-holder {
|
||||
.mfp-content {
|
||||
width: 100%;
|
||||
cursor: auto;
|
||||
}
|
||||
}
|
||||
|
||||
// Cursors
|
||||
.mfp-ajax-cur {
|
||||
cursor: progress;
|
||||
}
|
||||
.mfp-zoom-out-cur {
|
||||
&, .mfp-image-holder .mfp-close {
|
||||
cursor: -moz-zoom-out;
|
||||
cursor: -webkit-zoom-out;
|
||||
cursor: zoom-out;
|
||||
}
|
||||
}
|
||||
.mfp-zoom {
|
||||
cursor: pointer;
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in;
|
||||
}
|
||||
.mfp-auto-cursor {
|
||||
.mfp-content {
|
||||
cursor: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.mfp-close,
|
||||
.mfp-arrow,
|
||||
.mfp-preloader,
|
||||
.mfp-counter {
|
||||
-webkit-user-select:none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
// Hide the image during the loading
|
||||
.mfp-loading {
|
||||
&.mfp-figure {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Helper class that hides stuff
|
||||
@if $mfp-use-visuallyhidden {
|
||||
// From HTML5 Boilerplate https://github.com/h5bp/html5-boilerplate/blob/v4.2.0/doc/css.md#visuallyhidden
|
||||
.mfp-hide {
|
||||
border: 0 !important;
|
||||
clip: rect(0 0 0 0) !important;
|
||||
height: 1px !important;
|
||||
margin: -1px !important;
|
||||
overflow: hidden !important;
|
||||
padding: 0 !important;
|
||||
position: absolute !important;
|
||||
width: 1px !important;
|
||||
}
|
||||
} @else {
|
||||
.mfp-hide {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
////////////////////////
|
||||
// 2. Appearance
|
||||
////////////////////////
|
||||
|
||||
// Preloader and text that displays error messages
|
||||
.mfp-preloader {
|
||||
color: $mfp-controls-text-color;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: auto;
|
||||
text-align: center;
|
||||
margin-top: -0.8em;
|
||||
left: 8px;
|
||||
right: 8px;
|
||||
z-index: $mfp-z-index-base + 4;
|
||||
a {
|
||||
color: $mfp-controls-text-color;
|
||||
&:hover {
|
||||
color: $mfp-controls-text-color-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Hide preloader when content successfully loaded
|
||||
.mfp-s-ready {
|
||||
.mfp-preloader {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Hide content when it was not loaded
|
||||
.mfp-s-error {
|
||||
.mfp-content {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
// CSS-reset for buttons
|
||||
button {
|
||||
&.mfp-close,
|
||||
&.mfp-arrow {
|
||||
overflow: visible;
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
display: block;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
z-index: $mfp-z-index-base + 6;
|
||||
box-shadow: none;
|
||||
touch-action: manipulation;
|
||||
}
|
||||
&::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Close icon
|
||||
.mfp-close {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
line-height: 44px;
|
||||
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
text-decoration: none;
|
||||
text-align: center;
|
||||
opacity: $mfp-controls-opacity;
|
||||
padding: 0 0 18px 10px;
|
||||
color: $mfp-controls-color;
|
||||
|
||||
font-style: normal;
|
||||
font-size: 28px;
|
||||
font-family: Arial, Baskerville, monospace;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
&:active {
|
||||
top: 1px;
|
||||
}
|
||||
}
|
||||
.mfp-close-btn-in {
|
||||
.mfp-close {
|
||||
color: $mfp-inner-close-icon-color;
|
||||
}
|
||||
}
|
||||
.mfp-image-holder,
|
||||
.mfp-iframe-holder {
|
||||
.mfp-close {
|
||||
color: $mfp-controls-color;
|
||||
right: -6px;
|
||||
text-align: right;
|
||||
padding-right: 6px;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
// "1 of X" counter
|
||||
.mfp-counter {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: $mfp-controls-text-color;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
// Navigation arrows
|
||||
@if $mfp-include-arrows {
|
||||
.mfp-arrow {
|
||||
position: absolute;
|
||||
opacity: $mfp-controls-opacity;
|
||||
margin: 0;
|
||||
top: 50%;
|
||||
margin-top: -55px;
|
||||
padding: 0;
|
||||
width: 90px;
|
||||
height: 110px;
|
||||
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
||||
&:active {
|
||||
margin-top: -54px;
|
||||
}
|
||||
&:hover,
|
||||
&:focus {
|
||||
opacity: 1;
|
||||
}
|
||||
&:before,
|
||||
&:after {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
margin-top: 35px;
|
||||
margin-left: 35px;
|
||||
border: medium inset transparent;
|
||||
}
|
||||
|
||||
&:after {
|
||||
|
||||
border-top-width: 13px;
|
||||
border-bottom-width: 13px;
|
||||
top:8px;
|
||||
}
|
||||
|
||||
&:before {
|
||||
border-top-width: 21px;
|
||||
border-bottom-width: 21px;
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.mfp-arrow-left {
|
||||
left: 0;
|
||||
&:after {
|
||||
border-right: 17px solid $mfp-controls-color;
|
||||
margin-left: 31px;
|
||||
}
|
||||
&:before {
|
||||
margin-left: 25px;
|
||||
border-right: 27px solid $mfp-controls-border-color;
|
||||
}
|
||||
}
|
||||
|
||||
.mfp-arrow-right {
|
||||
right: 0;
|
||||
&:after {
|
||||
border-left: 17px solid $mfp-controls-color;
|
||||
margin-left: 39px
|
||||
}
|
||||
&:before {
|
||||
border-left: 27px solid $mfp-controls-border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Iframe content type
|
||||
@if $mfp-include-iframe-type {
|
||||
.mfp-iframe-holder {
|
||||
padding-top: $mfp-iframe-padding-top;
|
||||
padding-bottom: $mfp-iframe-padding-top;
|
||||
.mfp-content {
|
||||
line-height: 0;
|
||||
width: 100%;
|
||||
max-width: $mfp-iframe-max-width;
|
||||
}
|
||||
.mfp-close {
|
||||
top: -40px;
|
||||
}
|
||||
}
|
||||
.mfp-iframe-scaler {
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
padding-top: $mfp-iframe-ratio * 100%;
|
||||
iframe {
|
||||
position: absolute;
|
||||
display: block;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
box-shadow: $mfp-shadow;
|
||||
background: $mfp-iframe-background;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Image content type
|
||||
@if $mfp-include-image-type {
|
||||
|
||||
/* Main image in popup */
|
||||
img {
|
||||
&.mfp-img {
|
||||
width: auto;
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
line-height: 0;
|
||||
box-sizing: border-box;
|
||||
padding: $mfp-image-padding-top 0 $mfp-image-padding-bottom;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
/* The shadow behind the image */
|
||||
.mfp-figure {
|
||||
line-height: 0;
|
||||
&:after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: $mfp-image-padding-top;
|
||||
bottom: $mfp-image-padding-bottom;
|
||||
display: block;
|
||||
right: 0;
|
||||
width: auto;
|
||||
height: auto;
|
||||
z-index: -1;
|
||||
box-shadow: $mfp-shadow;
|
||||
background: $mfp-image-background;
|
||||
}
|
||||
small {
|
||||
color: $mfp-caption-subtitle-color;
|
||||
display: block;
|
||||
font-size: 12px;
|
||||
line-height: 14px;
|
||||
}
|
||||
figure {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
.mfp-bottom-bar {
|
||||
margin-top: -$mfp-image-padding-bottom + 4;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
cursor: auto;
|
||||
}
|
||||
.mfp-title {
|
||||
text-align: left;
|
||||
line-height: 18px;
|
||||
color: $mfp-caption-title-color;
|
||||
word-wrap: break-word;
|
||||
padding-right: 36px; // leave some space for counter at right side
|
||||
}
|
||||
|
||||
.mfp-image-holder {
|
||||
.mfp-content {
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.mfp-gallery {
|
||||
.mfp-image-holder {
|
||||
.mfp-figure {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@if $mfp-include-mobile-layout-for-image {
|
||||
@media screen and (max-width: 800px) and (orientation:landscape), screen and (max-height: 300px) {
|
||||
/**
|
||||
* Remove all paddings around the image on small screen
|
||||
*/
|
||||
.mfp-img-mobile {
|
||||
.mfp-image-holder {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
img {
|
||||
&.mfp-img {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.mfp-figure {
|
||||
// The shadow behind the image
|
||||
&:after {
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
small {
|
||||
display: inline;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.mfp-bottom-bar {
|
||||
background: rgba(0,0,0,0.6);
|
||||
bottom: 0;
|
||||
margin: 0;
|
||||
top: auto;
|
||||
padding: 3px 5px;
|
||||
position: fixed;
|
||||
box-sizing: border-box;
|
||||
&:empty {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.mfp-counter {
|
||||
right: 5px;
|
||||
top: 3px;
|
||||
}
|
||||
.mfp-close {
|
||||
top: 0;
|
||||
right: 0;
|
||||
width: 35px;
|
||||
height: 35px;
|
||||
line-height: 35px;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
position: fixed;
|
||||
text-align: center;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Scale navigation arrows and reduce padding from sides
|
||||
@media all and (max-width: 900px) {
|
||||
.mfp-arrow {
|
||||
-webkit-transform: scale(0.75);
|
||||
transform: scale(0.75);
|
||||
}
|
||||
.mfp-arrow-left {
|
||||
-webkit-transform-origin: 0;
|
||||
transform-origin: 0;
|
||||
}
|
||||
.mfp-arrow-right {
|
||||
-webkit-transform-origin: 100%;
|
||||
transform-origin: 100%;
|
||||
}
|
||||
.mfp-container {
|
||||
padding-left: $mfp-popup-padding-left-mobile;
|
||||
padding-right: $mfp-popup-padding-left-mobile;
|
||||
}
|
||||
}
|
||||
|
77
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/ajax.js
vendored
Executable file
77
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/ajax.js
vendored
Executable file
@@ -0,0 +1,77 @@
|
||||
var AJAX_NS = 'ajax',
|
||||
_ajaxCur,
|
||||
_removeAjaxCursor = function() {
|
||||
if(_ajaxCur) {
|
||||
$(document.body).removeClass(_ajaxCur);
|
||||
}
|
||||
},
|
||||
_destroyAjaxRequest = function() {
|
||||
_removeAjaxCursor();
|
||||
if(mfp.req) {
|
||||
mfp.req.abort();
|
||||
}
|
||||
};
|
||||
|
||||
$.magnificPopup.registerModule(AJAX_NS, {
|
||||
|
||||
options: {
|
||||
settings: null,
|
||||
cursor: 'mfp-ajax-cur',
|
||||
tError: '<a href="%url%">The content</a> could not be loaded.'
|
||||
},
|
||||
|
||||
proto: {
|
||||
initAjax: function() {
|
||||
mfp.types.push(AJAX_NS);
|
||||
_ajaxCur = mfp.st.ajax.cursor;
|
||||
|
||||
_mfpOn(CLOSE_EVENT+'.'+AJAX_NS, _destroyAjaxRequest);
|
||||
_mfpOn('BeforeChange.' + AJAX_NS, _destroyAjaxRequest);
|
||||
},
|
||||
getAjax: function(item) {
|
||||
|
||||
if(_ajaxCur) {
|
||||
$(document.body).addClass(_ajaxCur);
|
||||
}
|
||||
|
||||
mfp.updateStatus('loading');
|
||||
|
||||
var opts = $.extend({
|
||||
url: item.src,
|
||||
success: function(data, textStatus, jqXHR) {
|
||||
var temp = {
|
||||
data:data,
|
||||
xhr:jqXHR
|
||||
};
|
||||
|
||||
_mfpTrigger('ParseAjax', temp);
|
||||
|
||||
mfp.appendContent( $(temp.data), AJAX_NS );
|
||||
|
||||
item.finished = true;
|
||||
|
||||
_removeAjaxCursor();
|
||||
|
||||
mfp._setFocus();
|
||||
|
||||
setTimeout(function() {
|
||||
mfp.wrap.addClass(READY_CLASS);
|
||||
}, 16);
|
||||
|
||||
mfp.updateStatus('ready');
|
||||
|
||||
_mfpTrigger('AjaxContentAdded');
|
||||
},
|
||||
error: function() {
|
||||
_removeAjaxCursor();
|
||||
item.finished = item.loadError = true;
|
||||
mfp.updateStatus('error', mfp.st.ajax.tError.replace('%url%', item.src));
|
||||
}
|
||||
}, mfp.st.ajax.settings);
|
||||
|
||||
mfp.req = $.ajax(opts);
|
||||
|
||||
return '';
|
||||
}
|
||||
}
|
||||
});
|
939
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/core.js
vendored
Executable file
939
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/core.js
vendored
Executable file
@@ -0,0 +1,939 @@
|
||||
/**
|
||||
*
|
||||
* Magnific Popup Core JS file
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* Private static constants
|
||||
*/
|
||||
var CLOSE_EVENT = 'Close',
|
||||
BEFORE_CLOSE_EVENT = 'BeforeClose',
|
||||
AFTER_CLOSE_EVENT = 'AfterClose',
|
||||
BEFORE_APPEND_EVENT = 'BeforeAppend',
|
||||
MARKUP_PARSE_EVENT = 'MarkupParse',
|
||||
OPEN_EVENT = 'Open',
|
||||
CHANGE_EVENT = 'Change',
|
||||
NS = 'mfp',
|
||||
EVENT_NS = '.' + NS,
|
||||
READY_CLASS = 'mfp-ready',
|
||||
REMOVING_CLASS = 'mfp-removing',
|
||||
PREVENT_CLOSE_CLASS = 'mfp-prevent-close';
|
||||
|
||||
|
||||
/**
|
||||
* Private vars
|
||||
*/
|
||||
/*jshint -W079 */
|
||||
var mfp, // As we have only one instance of MagnificPopup object, we define it locally to not to use 'this'
|
||||
MagnificPopup = function(){},
|
||||
_isJQ = !!(window.jQuery),
|
||||
_prevStatus,
|
||||
_window = $(window),
|
||||
_document,
|
||||
_prevContentType,
|
||||
_wrapClasses,
|
||||
_currPopupType;
|
||||
|
||||
|
||||
/**
|
||||
* Private functions
|
||||
*/
|
||||
var _mfpOn = function(name, f) {
|
||||
mfp.ev.on(NS + name + EVENT_NS, f);
|
||||
},
|
||||
_getEl = function(className, appendTo, html, raw) {
|
||||
var el = document.createElement('div');
|
||||
el.className = 'mfp-'+className;
|
||||
if(html) {
|
||||
el.innerHTML = html;
|
||||
}
|
||||
if(!raw) {
|
||||
el = $(el);
|
||||
if(appendTo) {
|
||||
el.appendTo(appendTo);
|
||||
}
|
||||
} else if(appendTo) {
|
||||
appendTo.appendChild(el);
|
||||
}
|
||||
return el;
|
||||
},
|
||||
_mfpTrigger = function(e, data) {
|
||||
mfp.ev.triggerHandler(NS + e, data);
|
||||
|
||||
if(mfp.st.callbacks) {
|
||||
// converts "mfpEventName" to "eventName" callback and triggers it if it's present
|
||||
e = e.charAt(0).toLowerCase() + e.slice(1);
|
||||
if(mfp.st.callbacks[e]) {
|
||||
mfp.st.callbacks[e].apply(mfp, $.isArray(data) ? data : [data]);
|
||||
}
|
||||
}
|
||||
},
|
||||
_getCloseBtn = function(type) {
|
||||
if(type !== _currPopupType || !mfp.currTemplate.closeBtn) {
|
||||
mfp.currTemplate.closeBtn = $( mfp.st.closeMarkup.replace('%title%', mfp.st.tClose ) );
|
||||
_currPopupType = type;
|
||||
}
|
||||
return mfp.currTemplate.closeBtn;
|
||||
},
|
||||
// Initialize Magnific Popup only when called at least once
|
||||
_checkInstance = function() {
|
||||
if(!$.magnificPopup.instance) {
|
||||
/*jshint -W020 */
|
||||
mfp = new MagnificPopup();
|
||||
mfp.init();
|
||||
$.magnificPopup.instance = mfp;
|
||||
}
|
||||
},
|
||||
// CSS transition detection, http://stackoverflow.com/questions/7264899/detect-css-transitions-using-javascript-and-without-modernizr
|
||||
supportsTransitions = function() {
|
||||
var s = document.createElement('p').style, // 's' for style. better to create an element if body yet to exist
|
||||
v = ['ms','O','Moz','Webkit']; // 'v' for vendor
|
||||
|
||||
if( s['transition'] !== undefined ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
while( v.length ) {
|
||||
if( v.pop() + 'Transition' in s ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Public functions
|
||||
*/
|
||||
MagnificPopup.prototype = {
|
||||
|
||||
constructor: MagnificPopup,
|
||||
|
||||
/**
|
||||
* Initializes Magnific Popup plugin.
|
||||
* This function is triggered only once when $.fn.magnificPopup or $.magnificPopup is executed
|
||||
*/
|
||||
init: function() {
|
||||
var appVersion = navigator.appVersion;
|
||||
mfp.isLowIE = mfp.isIE8 = document.all && !document.addEventListener;
|
||||
mfp.isAndroid = (/android/gi).test(appVersion);
|
||||
mfp.isIOS = (/iphone|ipad|ipod/gi).test(appVersion);
|
||||
mfp.supportsTransition = supportsTransitions();
|
||||
|
||||
// We disable fixed positioned lightbox on devices that don't handle it nicely.
|
||||
// If you know a better way of detecting this - let me know.
|
||||
mfp.probablyMobile = (mfp.isAndroid || mfp.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent) );
|
||||
_document = $(document);
|
||||
|
||||
mfp.popupsCache = {};
|
||||
},
|
||||
|
||||
/**
|
||||
* Opens popup
|
||||
* @param data [description]
|
||||
*/
|
||||
open: function(data) {
|
||||
|
||||
var i;
|
||||
|
||||
if(data.isObj === false) {
|
||||
// convert jQuery collection to array to avoid conflicts later
|
||||
mfp.items = data.items.toArray();
|
||||
|
||||
mfp.index = 0;
|
||||
var items = data.items,
|
||||
item;
|
||||
for(i = 0; i < items.length; i++) {
|
||||
item = items[i];
|
||||
if(item.parsed) {
|
||||
item = item.el[0];
|
||||
}
|
||||
if(item === data.el[0]) {
|
||||
mfp.index = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mfp.items = $.isArray(data.items) ? data.items : [data.items];
|
||||
mfp.index = data.index || 0;
|
||||
}
|
||||
|
||||
// if popup is already opened - we just update the content
|
||||
if(mfp.isOpen) {
|
||||
mfp.updateItemHTML();
|
||||
return;
|
||||
}
|
||||
|
||||
mfp.types = [];
|
||||
_wrapClasses = '';
|
||||
if(data.mainEl && data.mainEl.length) {
|
||||
mfp.ev = data.mainEl.eq(0);
|
||||
} else {
|
||||
mfp.ev = _document;
|
||||
}
|
||||
|
||||
if(data.key) {
|
||||
if(!mfp.popupsCache[data.key]) {
|
||||
mfp.popupsCache[data.key] = {};
|
||||
}
|
||||
mfp.currTemplate = mfp.popupsCache[data.key];
|
||||
} else {
|
||||
mfp.currTemplate = {};
|
||||
}
|
||||
|
||||
|
||||
|
||||
mfp.st = $.extend(true, {}, $.magnificPopup.defaults, data );
|
||||
mfp.fixedContentPos = mfp.st.fixedContentPos === 'auto' ? !mfp.probablyMobile : mfp.st.fixedContentPos;
|
||||
|
||||
if(mfp.st.modal) {
|
||||
mfp.st.closeOnContentClick = false;
|
||||
mfp.st.closeOnBgClick = false;
|
||||
mfp.st.showCloseBtn = false;
|
||||
mfp.st.enableEscapeKey = false;
|
||||
}
|
||||
|
||||
|
||||
// Building markup
|
||||
// main containers are created only once
|
||||
if(!mfp.bgOverlay) {
|
||||
|
||||
// Dark overlay
|
||||
mfp.bgOverlay = _getEl('bg').on('click'+EVENT_NS, function() {
|
||||
mfp.close();
|
||||
});
|
||||
|
||||
mfp.wrap = _getEl('wrap').attr('tabindex', -1).on('click'+EVENT_NS, function(e) {
|
||||
if(mfp._checkIfClose(e.target)) {
|
||||
mfp.close();
|
||||
}
|
||||
});
|
||||
|
||||
mfp.container = _getEl('container', mfp.wrap);
|
||||
}
|
||||
|
||||
mfp.contentContainer = _getEl('content');
|
||||
if(mfp.st.preloader) {
|
||||
mfp.preloader = _getEl('preloader', mfp.container, mfp.st.tLoading);
|
||||
}
|
||||
|
||||
|
||||
// Initializing modules
|
||||
var modules = $.magnificPopup.modules;
|
||||
for(i = 0; i < modules.length; i++) {
|
||||
var n = modules[i];
|
||||
n = n.charAt(0).toUpperCase() + n.slice(1);
|
||||
mfp['init'+n].call(mfp);
|
||||
}
|
||||
_mfpTrigger('BeforeOpen');
|
||||
|
||||
|
||||
if(mfp.st.showCloseBtn) {
|
||||
// Close button
|
||||
if(!mfp.st.closeBtnInside) {
|
||||
mfp.wrap.append( _getCloseBtn() );
|
||||
} else {
|
||||
_mfpOn(MARKUP_PARSE_EVENT, function(e, template, values, item) {
|
||||
values.close_replaceWith = _getCloseBtn(item.type);
|
||||
});
|
||||
_wrapClasses += ' mfp-close-btn-in';
|
||||
}
|
||||
}
|
||||
|
||||
if(mfp.st.alignTop) {
|
||||
_wrapClasses += ' mfp-align-top';
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(mfp.fixedContentPos) {
|
||||
mfp.wrap.css({
|
||||
overflow: mfp.st.overflowY,
|
||||
overflowX: 'hidden',
|
||||
overflowY: mfp.st.overflowY
|
||||
});
|
||||
} else {
|
||||
mfp.wrap.css({
|
||||
top: _window.scrollTop(),
|
||||
position: 'absolute'
|
||||
});
|
||||
}
|
||||
if( mfp.st.fixedBgPos === false || (mfp.st.fixedBgPos === 'auto' && !mfp.fixedContentPos) ) {
|
||||
mfp.bgOverlay.css({
|
||||
height: _document.height(),
|
||||
position: 'absolute'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(mfp.st.enableEscapeKey) {
|
||||
// Close on ESC key
|
||||
_document.on('keyup' + EVENT_NS, function(e) {
|
||||
if(e.keyCode === 27) {
|
||||
mfp.close();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
_window.on('resize' + EVENT_NS, function() {
|
||||
mfp.updateSize();
|
||||
});
|
||||
|
||||
|
||||
if(!mfp.st.closeOnContentClick) {
|
||||
_wrapClasses += ' mfp-auto-cursor';
|
||||
}
|
||||
|
||||
if(_wrapClasses)
|
||||
mfp.wrap.addClass(_wrapClasses);
|
||||
|
||||
|
||||
// this triggers recalculation of layout, so we get it once to not to trigger twice
|
||||
var windowHeight = mfp.wH = _window.height();
|
||||
|
||||
|
||||
var windowStyles = {};
|
||||
|
||||
if( mfp.fixedContentPos ) {
|
||||
if(mfp._hasScrollBar(windowHeight)){
|
||||
var s = mfp._getScrollbarSize();
|
||||
if(s) {
|
||||
windowStyles.marginRight = s;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(mfp.fixedContentPos) {
|
||||
if(!mfp.isIE7) {
|
||||
windowStyles.overflow = 'hidden';
|
||||
} else {
|
||||
// ie7 double-scroll bug
|
||||
$('body, html').css('overflow', 'hidden');
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
var classesToadd = mfp.st.mainClass;
|
||||
if(mfp.isIE7) {
|
||||
classesToadd += ' mfp-ie7';
|
||||
}
|
||||
if(classesToadd) {
|
||||
mfp._addClassToMFP( classesToadd );
|
||||
}
|
||||
|
||||
// add content
|
||||
mfp.updateItemHTML();
|
||||
|
||||
_mfpTrigger('BuildControls');
|
||||
|
||||
// remove scrollbar, add margin e.t.c
|
||||
$('html').css(windowStyles);
|
||||
|
||||
// add everything to DOM
|
||||
mfp.bgOverlay.add(mfp.wrap).prependTo( mfp.st.prependTo || $(document.body) );
|
||||
|
||||
// Save last focused element
|
||||
mfp._lastFocusedEl = document.activeElement;
|
||||
|
||||
// Wait for next cycle to allow CSS transition
|
||||
setTimeout(function() {
|
||||
|
||||
if(mfp.content) {
|
||||
mfp._addClassToMFP(READY_CLASS);
|
||||
mfp._setFocus();
|
||||
} else {
|
||||
// if content is not defined (not loaded e.t.c) we add class only for BG
|
||||
mfp.bgOverlay.addClass(READY_CLASS);
|
||||
}
|
||||
|
||||
// Trap the focus in popup
|
||||
_document.on('focusin' + EVENT_NS, mfp._onFocusIn);
|
||||
|
||||
}, 16);
|
||||
|
||||
mfp.isOpen = true;
|
||||
mfp.updateSize(windowHeight);
|
||||
_mfpTrigger(OPEN_EVENT);
|
||||
|
||||
return data;
|
||||
},
|
||||
|
||||
/**
|
||||
* Closes the popup
|
||||
*/
|
||||
close: function() {
|
||||
if(!mfp.isOpen) return;
|
||||
_mfpTrigger(BEFORE_CLOSE_EVENT);
|
||||
|
||||
mfp.isOpen = false;
|
||||
// for CSS3 animation
|
||||
if(mfp.st.removalDelay && !mfp.isLowIE && mfp.supportsTransition ) {
|
||||
mfp._addClassToMFP(REMOVING_CLASS);
|
||||
setTimeout(function() {
|
||||
mfp._close();
|
||||
}, mfp.st.removalDelay);
|
||||
} else {
|
||||
mfp._close();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Helper for close() function
|
||||
*/
|
||||
_close: function() {
|
||||
_mfpTrigger(CLOSE_EVENT);
|
||||
|
||||
var classesToRemove = REMOVING_CLASS + ' ' + READY_CLASS + ' ';
|
||||
|
||||
mfp.bgOverlay.detach();
|
||||
mfp.wrap.detach();
|
||||
mfp.container.empty();
|
||||
|
||||
if(mfp.st.mainClass) {
|
||||
classesToRemove += mfp.st.mainClass + ' ';
|
||||
}
|
||||
|
||||
mfp._removeClassFromMFP(classesToRemove);
|
||||
|
||||
if(mfp.fixedContentPos) {
|
||||
var windowStyles = {marginRight: ''};
|
||||
if(mfp.isIE7) {
|
||||
$('body, html').css('overflow', '');
|
||||
} else {
|
||||
windowStyles.overflow = '';
|
||||
}
|
||||
$('html').css(windowStyles);
|
||||
}
|
||||
|
||||
_document.off('keyup' + EVENT_NS + ' focusin' + EVENT_NS);
|
||||
mfp.ev.off(EVENT_NS);
|
||||
|
||||
// clean up DOM elements that aren't removed
|
||||
mfp.wrap.attr('class', 'mfp-wrap').removeAttr('style');
|
||||
mfp.bgOverlay.attr('class', 'mfp-bg');
|
||||
mfp.container.attr('class', 'mfp-container');
|
||||
|
||||
// remove close button from target element
|
||||
if(mfp.st.showCloseBtn &&
|
||||
(!mfp.st.closeBtnInside || mfp.currTemplate[mfp.currItem.type] === true)) {
|
||||
if(mfp.currTemplate.closeBtn)
|
||||
mfp.currTemplate.closeBtn.detach();
|
||||
}
|
||||
|
||||
|
||||
if(mfp.st.autoFocusLast && mfp._lastFocusedEl) {
|
||||
$(mfp._lastFocusedEl).focus(); // put tab focus back
|
||||
}
|
||||
mfp.currItem = null;
|
||||
mfp.content = null;
|
||||
mfp.currTemplate = null;
|
||||
mfp.prevHeight = 0;
|
||||
|
||||
_mfpTrigger(AFTER_CLOSE_EVENT);
|
||||
},
|
||||
|
||||
updateSize: function(winHeight) {
|
||||
|
||||
if(mfp.isIOS) {
|
||||
// fixes iOS nav bars https://github.com/dimsemenov/Magnific-Popup/issues/2
|
||||
var zoomLevel = document.documentElement.clientWidth / window.innerWidth;
|
||||
var height = window.innerHeight * zoomLevel;
|
||||
mfp.wrap.css('height', height);
|
||||
mfp.wH = height;
|
||||
} else {
|
||||
mfp.wH = winHeight || _window.height();
|
||||
}
|
||||
// Fixes #84: popup incorrectly positioned with position:relative on body
|
||||
if(!mfp.fixedContentPos) {
|
||||
mfp.wrap.css('height', mfp.wH);
|
||||
}
|
||||
|
||||
_mfpTrigger('Resize');
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Set content of popup based on current index
|
||||
*/
|
||||
updateItemHTML: function() {
|
||||
var item = mfp.items[mfp.index];
|
||||
|
||||
// Detach and perform modifications
|
||||
mfp.contentContainer.detach();
|
||||
|
||||
if(mfp.content)
|
||||
mfp.content.detach();
|
||||
|
||||
if(!item.parsed) {
|
||||
item = mfp.parseEl( mfp.index );
|
||||
}
|
||||
|
||||
var type = item.type;
|
||||
|
||||
_mfpTrigger('BeforeChange', [mfp.currItem ? mfp.currItem.type : '', type]);
|
||||
// BeforeChange event works like so:
|
||||
// _mfpOn('BeforeChange', function(e, prevType, newType) { });
|
||||
|
||||
mfp.currItem = item;
|
||||
|
||||
if(!mfp.currTemplate[type]) {
|
||||
var markup = mfp.st[type] ? mfp.st[type].markup : false;
|
||||
|
||||
// allows to modify markup
|
||||
_mfpTrigger('FirstMarkupParse', markup);
|
||||
|
||||
if(markup) {
|
||||
mfp.currTemplate[type] = $(markup);
|
||||
} else {
|
||||
// if there is no markup found we just define that template is parsed
|
||||
mfp.currTemplate[type] = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(_prevContentType && _prevContentType !== item.type) {
|
||||
mfp.container.removeClass('mfp-'+_prevContentType+'-holder');
|
||||
}
|
||||
|
||||
var newContent = mfp['get' + type.charAt(0).toUpperCase() + type.slice(1)](item, mfp.currTemplate[type]);
|
||||
mfp.appendContent(newContent, type);
|
||||
|
||||
item.preloaded = true;
|
||||
|
||||
_mfpTrigger(CHANGE_EVENT, item);
|
||||
_prevContentType = item.type;
|
||||
|
||||
// Append container back after its content changed
|
||||
mfp.container.prepend(mfp.contentContainer);
|
||||
|
||||
_mfpTrigger('AfterChange');
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Set HTML content of popup
|
||||
*/
|
||||
appendContent: function(newContent, type) {
|
||||
mfp.content = newContent;
|
||||
|
||||
if(newContent) {
|
||||
if(mfp.st.showCloseBtn && mfp.st.closeBtnInside &&
|
||||
mfp.currTemplate[type] === true) {
|
||||
// if there is no markup, we just append close button element inside
|
||||
if(!mfp.content.find('.mfp-close').length) {
|
||||
mfp.content.append(_getCloseBtn());
|
||||
}
|
||||
} else {
|
||||
mfp.content = newContent;
|
||||
}
|
||||
} else {
|
||||
mfp.content = '';
|
||||
}
|
||||
|
||||
_mfpTrigger(BEFORE_APPEND_EVENT);
|
||||
mfp.container.addClass('mfp-'+type+'-holder');
|
||||
|
||||
mfp.contentContainer.append(mfp.content);
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Creates Magnific Popup data object based on given data
|
||||
* @param {int} index Index of item to parse
|
||||
*/
|
||||
parseEl: function(index) {
|
||||
var item = mfp.items[index],
|
||||
type;
|
||||
|
||||
if(item.tagName) {
|
||||
item = { el: $(item) };
|
||||
} else {
|
||||
type = item.type;
|
||||
item = { data: item, src: item.src };
|
||||
}
|
||||
|
||||
if(item.el) {
|
||||
var types = mfp.types;
|
||||
|
||||
// check for 'mfp-TYPE' class
|
||||
for(var i = 0; i < types.length; i++) {
|
||||
if( item.el.hasClass('mfp-'+types[i]) ) {
|
||||
type = types[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
item.src = item.el.attr('data-mfp-src');
|
||||
if(!item.src) {
|
||||
item.src = item.el.attr('href');
|
||||
}
|
||||
}
|
||||
|
||||
item.type = type || mfp.st.type || 'inline';
|
||||
item.index = index;
|
||||
item.parsed = true;
|
||||
mfp.items[index] = item;
|
||||
_mfpTrigger('ElementParse', item);
|
||||
|
||||
return mfp.items[index];
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Initializes single popup or a group of popups
|
||||
*/
|
||||
addGroup: function(el, options) {
|
||||
var eHandler = function(e) {
|
||||
e.mfpEl = this;
|
||||
mfp._openClick(e, el, options);
|
||||
};
|
||||
|
||||
if(!options) {
|
||||
options = {};
|
||||
}
|
||||
|
||||
var eName = 'click.magnificPopup';
|
||||
options.mainEl = el;
|
||||
|
||||
if(options.items) {
|
||||
options.isObj = true;
|
||||
el.off(eName).on(eName, eHandler);
|
||||
} else {
|
||||
options.isObj = false;
|
||||
if(options.delegate) {
|
||||
el.off(eName).on(eName, options.delegate , eHandler);
|
||||
} else {
|
||||
options.items = el;
|
||||
el.off(eName).on(eName, eHandler);
|
||||
}
|
||||
}
|
||||
},
|
||||
_openClick: function(e, el, options) {
|
||||
var midClick = options.midClick !== undefined ? options.midClick : $.magnificPopup.defaults.midClick;
|
||||
|
||||
|
||||
if(!midClick && ( e.which === 2 || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var disableOn = options.disableOn !== undefined ? options.disableOn : $.magnificPopup.defaults.disableOn;
|
||||
|
||||
if(disableOn) {
|
||||
if($.isFunction(disableOn)) {
|
||||
if( !disableOn.call(mfp) ) {
|
||||
return true;
|
||||
}
|
||||
} else { // else it's number
|
||||
if( _window.width() < disableOn ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(e.type) {
|
||||
e.preventDefault();
|
||||
|
||||
// This will prevent popup from closing if element is inside and popup is already opened
|
||||
if(mfp.isOpen) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
}
|
||||
|
||||
options.el = $(e.mfpEl);
|
||||
if(options.delegate) {
|
||||
options.items = el.find(options.delegate);
|
||||
}
|
||||
mfp.open(options);
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Updates text on preloader
|
||||
*/
|
||||
updateStatus: function(status, text) {
|
||||
|
||||
if(mfp.preloader) {
|
||||
if(_prevStatus !== status) {
|
||||
mfp.container.removeClass('mfp-s-'+_prevStatus);
|
||||
}
|
||||
|
||||
if(!text && status === 'loading') {
|
||||
text = mfp.st.tLoading;
|
||||
}
|
||||
|
||||
var data = {
|
||||
status: status,
|
||||
text: text
|
||||
};
|
||||
// allows to modify status
|
||||
_mfpTrigger('UpdateStatus', data);
|
||||
|
||||
status = data.status;
|
||||
text = data.text;
|
||||
|
||||
mfp.preloader.html(text);
|
||||
|
||||
mfp.preloader.find('a').on('click', function(e) {
|
||||
e.stopImmediatePropagation();
|
||||
});
|
||||
|
||||
mfp.container.addClass('mfp-s-'+status);
|
||||
_prevStatus = status;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
/*
|
||||
"Private" helpers that aren't private at all
|
||||
*/
|
||||
// Check to close popup or not
|
||||
// "target" is an element that was clicked
|
||||
_checkIfClose: function(target) {
|
||||
|
||||
if($(target).closest('.' + PREVENT_CLOSE_CLASS).length) {
|
||||
return;
|
||||
}
|
||||
|
||||
var closeOnContent = mfp.st.closeOnContentClick;
|
||||
var closeOnBg = mfp.st.closeOnBgClick;
|
||||
|
||||
if(closeOnContent && closeOnBg) {
|
||||
return true;
|
||||
} else {
|
||||
|
||||
// We close the popup if click is on close button or on preloader. Or if there is no content.
|
||||
if(!mfp.content || $(target).closest('.mfp-close').length || (mfp.preloader && target === mfp.preloader[0]) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// if click is outside the content
|
||||
if( (target !== mfp.content[0] && !$.contains(mfp.content[0], target)) ) {
|
||||
if(closeOnBg) {
|
||||
// last check, if the clicked element is in DOM, (in case it's removed onclick)
|
||||
if( $.contains(document, target) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
} else if(closeOnContent) {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
return false;
|
||||
},
|
||||
_addClassToMFP: function(cName) {
|
||||
mfp.bgOverlay.addClass(cName);
|
||||
mfp.wrap.addClass(cName);
|
||||
},
|
||||
_removeClassFromMFP: function(cName) {
|
||||
this.bgOverlay.removeClass(cName);
|
||||
mfp.wrap.removeClass(cName);
|
||||
},
|
||||
_hasScrollBar: function(winHeight) {
|
||||
return ( (mfp.isIE7 ? _document.height() : document.body.scrollHeight) > (winHeight || _window.height()) );
|
||||
},
|
||||
_setFocus: function() {
|
||||
(mfp.st.focus ? mfp.content.find(mfp.st.focus).eq(0) : mfp.wrap).focus();
|
||||
},
|
||||
_onFocusIn: function(e) {
|
||||
if( e.target !== mfp.wrap[0] && !$.contains(mfp.wrap[0], e.target) ) {
|
||||
mfp._setFocus();
|
||||
return false;
|
||||
}
|
||||
},
|
||||
_parseMarkup: function(template, values, item) {
|
||||
var arr;
|
||||
if(item.data) {
|
||||
values = $.extend(item.data, values);
|
||||
}
|
||||
_mfpTrigger(MARKUP_PARSE_EVENT, [template, values, item] );
|
||||
|
||||
$.each(values, function(key, value) {
|
||||
if(value === undefined || value === false) {
|
||||
return true;
|
||||
}
|
||||
arr = key.split('_');
|
||||
if(arr.length > 1) {
|
||||
var el = template.find(EVENT_NS + '-'+arr[0]);
|
||||
|
||||
if(el.length > 0) {
|
||||
var attr = arr[1];
|
||||
if(attr === 'replaceWith') {
|
||||
if(el[0] !== value[0]) {
|
||||
el.replaceWith(value);
|
||||
}
|
||||
} else if(attr === 'img') {
|
||||
if(el.is('img')) {
|
||||
el.attr('src', value);
|
||||
} else {
|
||||
el.replaceWith( $('<img>').attr('src', value).attr('class', el.attr('class')) );
|
||||
}
|
||||
} else {
|
||||
el.attr(arr[1], value);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
template.find(EVENT_NS + '-'+key).html(value);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_getScrollbarSize: function() {
|
||||
// thx David
|
||||
if(mfp.scrollbarSize === undefined) {
|
||||
var scrollDiv = document.createElement("div");
|
||||
scrollDiv.style.cssText = 'width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;';
|
||||
document.body.appendChild(scrollDiv);
|
||||
mfp.scrollbarSize = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
||||
document.body.removeChild(scrollDiv);
|
||||
}
|
||||
return mfp.scrollbarSize;
|
||||
}
|
||||
|
||||
}; /* MagnificPopup core prototype end */
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Public static functions
|
||||
*/
|
||||
$.magnificPopup = {
|
||||
instance: null,
|
||||
proto: MagnificPopup.prototype,
|
||||
modules: [],
|
||||
|
||||
open: function(options, index) {
|
||||
_checkInstance();
|
||||
|
||||
if(!options) {
|
||||
options = {};
|
||||
} else {
|
||||
options = $.extend(true, {}, options);
|
||||
}
|
||||
|
||||
options.isObj = true;
|
||||
options.index = index || 0;
|
||||
return this.instance.open(options);
|
||||
},
|
||||
|
||||
close: function() {
|
||||
return $.magnificPopup.instance && $.magnificPopup.instance.close();
|
||||
},
|
||||
|
||||
registerModule: function(name, module) {
|
||||
if(module.options) {
|
||||
$.magnificPopup.defaults[name] = module.options;
|
||||
}
|
||||
$.extend(this.proto, module.proto);
|
||||
this.modules.push(name);
|
||||
},
|
||||
|
||||
defaults: {
|
||||
|
||||
// Info about options is in docs:
|
||||
// http://dimsemenov.com/plugins/magnific-popup/documentation.html#options
|
||||
|
||||
disableOn: 0,
|
||||
|
||||
key: null,
|
||||
|
||||
midClick: false,
|
||||
|
||||
mainClass: '',
|
||||
|
||||
preloader: true,
|
||||
|
||||
focus: '', // CSS selector of input to focus after popup is opened
|
||||
|
||||
closeOnContentClick: false,
|
||||
|
||||
closeOnBgClick: true,
|
||||
|
||||
closeBtnInside: true,
|
||||
|
||||
showCloseBtn: true,
|
||||
|
||||
enableEscapeKey: true,
|
||||
|
||||
modal: false,
|
||||
|
||||
alignTop: false,
|
||||
|
||||
removalDelay: 0,
|
||||
|
||||
prependTo: null,
|
||||
|
||||
fixedContentPos: 'auto',
|
||||
|
||||
fixedBgPos: 'auto',
|
||||
|
||||
overflowY: 'auto',
|
||||
|
||||
closeMarkup: '<button title="%title%" type="button" class="mfp-close">×</button>',
|
||||
|
||||
tClose: 'Close (Esc)',
|
||||
|
||||
tLoading: 'Loading...',
|
||||
|
||||
autoFocusLast: true
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
$.fn.magnificPopup = function(options) {
|
||||
_checkInstance();
|
||||
|
||||
var jqEl = $(this);
|
||||
|
||||
// We call some API method of first param is a string
|
||||
if (typeof options === "string" ) {
|
||||
|
||||
if(options === 'open') {
|
||||
var items,
|
||||
itemOpts = _isJQ ? jqEl.data('magnificPopup') : jqEl[0].magnificPopup,
|
||||
index = parseInt(arguments[1], 10) || 0;
|
||||
|
||||
if(itemOpts.items) {
|
||||
items = itemOpts.items[index];
|
||||
} else {
|
||||
items = jqEl;
|
||||
if(itemOpts.delegate) {
|
||||
items = items.find(itemOpts.delegate);
|
||||
}
|
||||
items = items.eq( index );
|
||||
}
|
||||
mfp._openClick({mfpEl:items}, jqEl, itemOpts);
|
||||
} else {
|
||||
if(mfp.isOpen)
|
||||
mfp[options].apply(mfp, Array.prototype.slice.call(arguments, 1));
|
||||
}
|
||||
|
||||
} else {
|
||||
// clone options obj
|
||||
options = $.extend(true, {}, options);
|
||||
|
||||
/*
|
||||
* As Zepto doesn't support .data() method for objects
|
||||
* and it works only in normal browsers
|
||||
* we assign "options" object directly to the DOM element. FTW!
|
||||
*/
|
||||
if(_isJQ) {
|
||||
jqEl.data('magnificPopup', options);
|
||||
} else {
|
||||
jqEl[0].magnificPopup = options;
|
||||
}
|
||||
|
||||
mfp.addGroup(jqEl, options);
|
||||
|
||||
}
|
||||
return jqEl;
|
||||
};
|
230
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/gallery.js
vendored
Executable file
230
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/gallery.js
vendored
Executable file
@@ -0,0 +1,230 @@
|
||||
/**
|
||||
* Get looped index depending on number of slides
|
||||
*/
|
||||
var _getLoopedId = function(index) {
|
||||
var numSlides = mfp.items.length;
|
||||
if(index > numSlides - 1) {
|
||||
return index - numSlides;
|
||||
} else if(index < 0) {
|
||||
return numSlides + index;
|
||||
}
|
||||
return index;
|
||||
},
|
||||
_replaceCurrTotal = function(text, curr, total) {
|
||||
return text.replace(/%curr%/gi, curr + 1).replace(/%total%/gi, total);
|
||||
};
|
||||
|
||||
$.magnificPopup.registerModule('gallery', {
|
||||
|
||||
options: {
|
||||
enabled: false,
|
||||
arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
|
||||
preload: [0,2],
|
||||
navigateByImgClick: true,
|
||||
arrows: true,
|
||||
|
||||
tPrev: 'Previous (Left arrow key)',
|
||||
tNext: 'Next (Right arrow key)',
|
||||
tCounter: '%curr% of %total%',
|
||||
|
||||
langDir: null,
|
||||
loop: true,
|
||||
},
|
||||
|
||||
proto: {
|
||||
initGallery: function() {
|
||||
|
||||
var gSt = mfp.st.gallery,
|
||||
ns = '.mfp-gallery';
|
||||
|
||||
mfp.direction = true; // true - next, false - prev
|
||||
|
||||
if(!gSt || !gSt.enabled ) return false;
|
||||
|
||||
if (!gSt.langDir) {
|
||||
gSt.langDir = document.dir || 'ltr';
|
||||
}
|
||||
|
||||
_wrapClasses += ' mfp-gallery';
|
||||
|
||||
_mfpOn(OPEN_EVENT+ns, function() {
|
||||
|
||||
if(gSt.navigateByImgClick) {
|
||||
mfp.wrap.on('click'+ns, '.mfp-img', function() {
|
||||
if(mfp.items.length > 1) {
|
||||
mfp.next();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
_document.on('keydown'+ns, function(e) {
|
||||
if (e.keyCode === 37) {
|
||||
if (gSt.langDir === 'rtl') mfp.next();
|
||||
else mfp.prev();
|
||||
} else if (e.keyCode === 39) {
|
||||
if (gSt.langDir === 'rtl') mfp.prev();
|
||||
else mfp.next();
|
||||
}
|
||||
});
|
||||
|
||||
mfp.updateGalleryButtons();
|
||||
|
||||
});
|
||||
|
||||
_mfpOn('UpdateStatus'+ns, function(e, data) {
|
||||
mfp.updateGalleryButtons();
|
||||
});
|
||||
|
||||
_mfpOn('UpdateStatus'+ns, function(e, data) {
|
||||
if(data.text) {
|
||||
data.text = _replaceCurrTotal(data.text, mfp.currItem.index, mfp.items.length);
|
||||
}
|
||||
});
|
||||
|
||||
_mfpOn(MARKUP_PARSE_EVENT+ns, function(e, element, values, item) {
|
||||
var l = mfp.items.length;
|
||||
values.counter = l > 1 ? _replaceCurrTotal(gSt.tCounter, item.index, l) : '';
|
||||
});
|
||||
|
||||
_mfpOn('BuildControls' + ns, function() {
|
||||
if(mfp.items.length > 1 && gSt.arrows && !mfp.arrowLeft) {
|
||||
|
||||
var arrowLeftDesc, arrowRightDesc, arrowLeftAction, arrowRightAction;
|
||||
|
||||
if (gSt.langDir === 'rtl') {
|
||||
arrowLeftDesc = gSt.tNext;
|
||||
arrowRightDesc = gSt.tPrev;
|
||||
arrowLeftAction = 'next';
|
||||
arrowRightAction = 'prev';
|
||||
} else {
|
||||
arrowLeftDesc = gSt.tPrev;
|
||||
arrowRightDesc = gSt.tNext;
|
||||
arrowLeftAction = 'prev';
|
||||
arrowRightAction = 'next';
|
||||
}
|
||||
|
||||
var markup = gSt.arrowMarkup,
|
||||
arrowLeft = mfp.arrowLeft = $( markup.replace(/%title%/gi, arrowLeftDesc).replace(/%action%/gi, arrowLeftAction).replace(/%dir%/gi, 'left') ).addClass(PREVENT_CLOSE_CLASS),
|
||||
arrowRight = mfp.arrowRight = $( markup.replace(/%title%/gi, arrowRightDesc).replace(/%action%/gi, arrowRightAction).replace(/%dir%/gi, 'right') ).addClass(PREVENT_CLOSE_CLASS);
|
||||
|
||||
if (gSt.langDir === 'rtl') {
|
||||
mfp.arrowNext = arrowLeft;
|
||||
mfp.arrowPrev = arrowRight;
|
||||
} else {
|
||||
mfp.arrowNext = arrowRight;
|
||||
mfp.arrowPrev = arrowLeft;
|
||||
}
|
||||
|
||||
arrowLeft.click(function() {
|
||||
if (gSt.langDir === 'rtl') mfp.next();
|
||||
else mfp.prev();
|
||||
});
|
||||
arrowRight.click(function() {
|
||||
if (gSt.langDir === 'rtl') mfp.prev();
|
||||
else mfp.next();
|
||||
});
|
||||
|
||||
mfp.container.append(arrowLeft.add(arrowRight));
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
_mfpOn(CHANGE_EVENT+ns, function() {
|
||||
if(mfp._preloadTimeout) clearTimeout(mfp._preloadTimeout);
|
||||
|
||||
mfp._preloadTimeout = setTimeout(function() {
|
||||
mfp.preloadNearbyImages();
|
||||
mfp._preloadTimeout = null;
|
||||
}, 16);
|
||||
});
|
||||
|
||||
|
||||
_mfpOn(CLOSE_EVENT+ns, function() {
|
||||
_document.off(ns);
|
||||
mfp.wrap.off('click'+ns);
|
||||
mfp.arrowRight = mfp.arrowLeft = null;
|
||||
});
|
||||
|
||||
},
|
||||
next: function() {
|
||||
var newIndex = _getLoopedId(mfp.index + 1);
|
||||
if (!mfp.st.gallery.loop && newIndex === 0 ) return false;
|
||||
mfp.direction = true;
|
||||
mfp.index = newIndex;
|
||||
mfp.updateItemHTML();
|
||||
},
|
||||
prev: function() {
|
||||
var newIndex = mfp.index - 1;
|
||||
if (!mfp.st.gallery.loop && newIndex < 0) return false;
|
||||
mfp.direction = false;
|
||||
mfp.index = _getLoopedId(newIndex);
|
||||
mfp.updateItemHTML();
|
||||
},
|
||||
goTo: function(newIndex) {
|
||||
mfp.direction = (newIndex >= mfp.index);
|
||||
mfp.index = newIndex;
|
||||
mfp.updateItemHTML();
|
||||
},
|
||||
preloadNearbyImages: function() {
|
||||
var p = mfp.st.gallery.preload,
|
||||
preloadBefore = Math.min(p[0], mfp.items.length),
|
||||
preloadAfter = Math.min(p[1], mfp.items.length),
|
||||
i;
|
||||
|
||||
for(i = 1; i <= (mfp.direction ? preloadAfter : preloadBefore); i++) {
|
||||
mfp._preloadItem(mfp.index+i);
|
||||
}
|
||||
for(i = 1; i <= (mfp.direction ? preloadBefore : preloadAfter); i++) {
|
||||
mfp._preloadItem(mfp.index-i);
|
||||
}
|
||||
},
|
||||
_preloadItem: function(index) {
|
||||
index = _getLoopedId(index);
|
||||
|
||||
if(mfp.items[index].preloaded) {
|
||||
return;
|
||||
}
|
||||
|
||||
var item = mfp.items[index];
|
||||
if(!item.parsed) {
|
||||
item = mfp.parseEl( index );
|
||||
}
|
||||
|
||||
_mfpTrigger('LazyLoad', item);
|
||||
|
||||
if(item.type === 'image') {
|
||||
item.img = $('<img class="mfp-img" />').on('load.mfploader', function() {
|
||||
item.hasSize = true;
|
||||
}).on('error.mfploader', function() {
|
||||
item.hasSize = true;
|
||||
item.loadError = true;
|
||||
_mfpTrigger('LazyLoadError', item);
|
||||
}).attr('src', item.src);
|
||||
}
|
||||
|
||||
|
||||
item.preloaded = true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Show/hide the gallery prev/next buttons if we're at the start/end, if looping is turned off
|
||||
* Added by Joloco for Veg
|
||||
*/
|
||||
updateGalleryButtons: function() {
|
||||
|
||||
if ( !mfp.st.gallery.loop && typeof mfp.arrowPrev === 'object' && mfp.arrowPrev !== null) {
|
||||
|
||||
if (mfp.index === 0) mfp.arrowPrev.hide();
|
||||
else mfp.arrowPrev.show();
|
||||
|
||||
if (mfp.index === (mfp.items.length - 1)) mfp.arrowNext.hide();
|
||||
else mfp.arrowNext.show();
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
}
|
||||
|
||||
});
|
102
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/iframe.js
vendored
Executable file
102
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/iframe.js
vendored
Executable file
@@ -0,0 +1,102 @@
|
||||
|
||||
var IFRAME_NS = 'iframe',
|
||||
_emptyPage = '//about:blank',
|
||||
|
||||
_fixIframeBugs = function(isShowing) {
|
||||
if(mfp.currTemplate[IFRAME_NS]) {
|
||||
var el = mfp.currTemplate[IFRAME_NS].find('iframe');
|
||||
if(el.length) {
|
||||
// reset src after the popup is closed to avoid "video keeps playing after popup is closed" bug
|
||||
if(!isShowing) {
|
||||
el[0].src = _emptyPage;
|
||||
}
|
||||
|
||||
// IE8 black screen bug fix
|
||||
if(mfp.isIE8) {
|
||||
el.css('display', isShowing ? 'block' : 'none');
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
$.magnificPopup.registerModule(IFRAME_NS, {
|
||||
|
||||
options: {
|
||||
markup: '<div class="mfp-iframe-scaler">'+
|
||||
'<div class="mfp-close"></div>'+
|
||||
'<iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe>'+
|
||||
'</div>',
|
||||
|
||||
srcAction: 'iframe_src',
|
||||
|
||||
// we don't care and support only one default type of URL by default
|
||||
patterns: {
|
||||
youtube: {
|
||||
index: 'youtube.com',
|
||||
id: 'v=',
|
||||
src: '//www.youtube.com/embed/%id%?autoplay=1'
|
||||
},
|
||||
vimeo: {
|
||||
index: 'vimeo.com/',
|
||||
id: '/',
|
||||
src: '//player.vimeo.com/video/%id%?autoplay=1'
|
||||
},
|
||||
gmaps: {
|
||||
index: '//maps.google.',
|
||||
src: '%id%&output=embed'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
proto: {
|
||||
initIframe: function() {
|
||||
mfp.types.push(IFRAME_NS);
|
||||
|
||||
_mfpOn('BeforeChange', function(e, prevType, newType) {
|
||||
if(prevType !== newType) {
|
||||
if(prevType === IFRAME_NS) {
|
||||
_fixIframeBugs(); // iframe if removed
|
||||
} else if(newType === IFRAME_NS) {
|
||||
_fixIframeBugs(true); // iframe is showing
|
||||
}
|
||||
}// else {
|
||||
// iframe source is switched, don't do anything
|
||||
//}
|
||||
});
|
||||
|
||||
_mfpOn(CLOSE_EVENT + '.' + IFRAME_NS, function() {
|
||||
_fixIframeBugs();
|
||||
});
|
||||
},
|
||||
|
||||
getIframe: function(item, template) {
|
||||
var embedSrc = item.src;
|
||||
var iframeSt = mfp.st.iframe;
|
||||
|
||||
$.each(iframeSt.patterns, function() {
|
||||
if(embedSrc.indexOf( this.index ) > -1) {
|
||||
if(this.id) {
|
||||
if(typeof this.id === 'string') {
|
||||
embedSrc = embedSrc.substr(embedSrc.lastIndexOf(this.id)+this.id.length, embedSrc.length);
|
||||
} else {
|
||||
embedSrc = this.id.call( this, embedSrc );
|
||||
}
|
||||
}
|
||||
embedSrc = this.src.replace('%id%', embedSrc );
|
||||
return false; // break;
|
||||
}
|
||||
});
|
||||
|
||||
var dataObj = {};
|
||||
if(iframeSt.srcAction) {
|
||||
dataObj[iframeSt.srcAction] = embedSrc;
|
||||
}
|
||||
mfp._parseMarkup(template, dataObj, item);
|
||||
|
||||
mfp.updateStatus('ready');
|
||||
|
||||
return template;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
244
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/image.js
vendored
Executable file
244
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/image.js
vendored
Executable file
@@ -0,0 +1,244 @@
|
||||
var _imgInterval,
|
||||
_getTitle = function(item) {
|
||||
if(item.data && item.data.title !== undefined)
|
||||
return item.data.title;
|
||||
|
||||
var src = mfp.st.image.titleSrc;
|
||||
|
||||
if(src) {
|
||||
if($.isFunction(src)) {
|
||||
return src.call(mfp, item);
|
||||
} else if(item.el) {
|
||||
return item.el.attr(src) || '';
|
||||
}
|
||||
}
|
||||
return '';
|
||||
};
|
||||
|
||||
$.magnificPopup.registerModule('image', {
|
||||
|
||||
options: {
|
||||
markup: '<div class="mfp-figure">'+
|
||||
'<div class="mfp-close"></div>'+
|
||||
'<figure>'+
|
||||
'<div class="mfp-img"></div>'+
|
||||
'<figcaption>'+
|
||||
'<div class="mfp-bottom-bar">'+
|
||||
'<div class="mfp-title"></div>'+
|
||||
'<div class="mfp-counter"></div>'+
|
||||
'</div>'+
|
||||
'</figcaption>'+
|
||||
'</figure>'+
|
||||
'</div>',
|
||||
cursor: 'mfp-zoom-out-cur',
|
||||
titleSrc: 'title',
|
||||
verticalFit: true,
|
||||
tError: '<a href="%url%">The image</a> could not be loaded.'
|
||||
},
|
||||
|
||||
proto: {
|
||||
initImage: function() {
|
||||
var imgSt = mfp.st.image,
|
||||
ns = '.image';
|
||||
|
||||
mfp.types.push('image');
|
||||
|
||||
_mfpOn(OPEN_EVENT+ns, function() {
|
||||
if(mfp.currItem.type === 'image' && imgSt.cursor) {
|
||||
$(document.body).addClass(imgSt.cursor);
|
||||
}
|
||||
});
|
||||
|
||||
_mfpOn(CLOSE_EVENT+ns, function() {
|
||||
if(imgSt.cursor) {
|
||||
$(document.body).removeClass(imgSt.cursor);
|
||||
}
|
||||
_window.off('resize' + EVENT_NS);
|
||||
});
|
||||
|
||||
_mfpOn('Resize'+ns, mfp.resizeImage);
|
||||
if(mfp.isLowIE) {
|
||||
_mfpOn('AfterChange', mfp.resizeImage);
|
||||
}
|
||||
},
|
||||
resizeImage: function() {
|
||||
var item = mfp.currItem;
|
||||
if(!item || !item.img) return;
|
||||
|
||||
if(mfp.st.image.verticalFit) {
|
||||
var decr = 0;
|
||||
// fix box-sizing in ie7/8
|
||||
if(mfp.isLowIE) {
|
||||
decr = parseInt(item.img.css('padding-top'), 10) + parseInt(item.img.css('padding-bottom'),10);
|
||||
}
|
||||
item.img.css('max-height', mfp.wH-decr);
|
||||
}
|
||||
},
|
||||
_onImageHasSize: function(item) {
|
||||
if(item.img) {
|
||||
|
||||
item.hasSize = true;
|
||||
|
||||
if(_imgInterval) {
|
||||
clearInterval(_imgInterval);
|
||||
}
|
||||
|
||||
item.isCheckingImgSize = false;
|
||||
|
||||
_mfpTrigger('ImageHasSize', item);
|
||||
|
||||
if(item.imgHidden) {
|
||||
if(mfp.content)
|
||||
mfp.content.removeClass('mfp-loading');
|
||||
|
||||
item.imgHidden = false;
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Function that loops until the image has size to display elements that rely on it asap
|
||||
*/
|
||||
findImageSize: function(item) {
|
||||
|
||||
var counter = 0,
|
||||
img = item.img[0],
|
||||
mfpSetInterval = function(delay) {
|
||||
|
||||
if(_imgInterval) {
|
||||
clearInterval(_imgInterval);
|
||||
}
|
||||
// decelerating interval that checks for size of an image
|
||||
_imgInterval = setInterval(function() {
|
||||
if(img.naturalWidth > 0) {
|
||||
mfp._onImageHasSize(item);
|
||||
return;
|
||||
}
|
||||
|
||||
if(counter > 200) {
|
||||
clearInterval(_imgInterval);
|
||||
}
|
||||
|
||||
counter++;
|
||||
if(counter === 3) {
|
||||
mfpSetInterval(10);
|
||||
} else if(counter === 40) {
|
||||
mfpSetInterval(50);
|
||||
} else if(counter === 100) {
|
||||
mfpSetInterval(500);
|
||||
}
|
||||
}, delay);
|
||||
};
|
||||
|
||||
mfpSetInterval(1);
|
||||
},
|
||||
|
||||
getImage: function(item, template) {
|
||||
|
||||
var guard = 0,
|
||||
|
||||
// image load complete handler
|
||||
onLoadComplete = function() {
|
||||
if(item) {
|
||||
if (item.img[0].complete) {
|
||||
item.img.off('.mfploader');
|
||||
|
||||
if(item === mfp.currItem){
|
||||
mfp._onImageHasSize(item);
|
||||
|
||||
mfp.updateStatus('ready');
|
||||
}
|
||||
|
||||
item.hasSize = true;
|
||||
item.loaded = true;
|
||||
|
||||
_mfpTrigger('ImageLoadComplete');
|
||||
|
||||
}
|
||||
else {
|
||||
// if image complete check fails 200 times (20 sec), we assume that there was an error.
|
||||
guard++;
|
||||
if(guard < 200) {
|
||||
setTimeout(onLoadComplete,100);
|
||||
} else {
|
||||
onLoadError();
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// image error handler
|
||||
onLoadError = function() {
|
||||
if(item) {
|
||||
item.img.off('.mfploader');
|
||||
if(item === mfp.currItem){
|
||||
mfp._onImageHasSize(item);
|
||||
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
|
||||
}
|
||||
|
||||
item.hasSize = true;
|
||||
item.loaded = true;
|
||||
item.loadError = true;
|
||||
}
|
||||
},
|
||||
imgSt = mfp.st.image;
|
||||
|
||||
|
||||
var el = template.find('.mfp-img');
|
||||
if(el.length) {
|
||||
var img = document.createElement('img');
|
||||
img.className = 'mfp-img';
|
||||
if(item.el && item.el.find('img').length) {
|
||||
img.alt = item.el.find('img').attr('alt');
|
||||
}
|
||||
item.img = $(img).on('load.mfploader', onLoadComplete).on('error.mfploader', onLoadError);
|
||||
img.src = item.src;
|
||||
|
||||
// without clone() "error" event is not firing when IMG is replaced by new IMG
|
||||
// TODO: find a way to avoid such cloning
|
||||
if(el.is('img')) {
|
||||
item.img = item.img.clone();
|
||||
}
|
||||
|
||||
img = item.img[0];
|
||||
if(img.naturalWidth > 0) {
|
||||
item.hasSize = true;
|
||||
} else if(!img.width) {
|
||||
item.hasSize = false;
|
||||
}
|
||||
}
|
||||
|
||||
mfp._parseMarkup(template, {
|
||||
title: _getTitle(item),
|
||||
img_replaceWith: item.img
|
||||
}, item);
|
||||
|
||||
mfp.resizeImage();
|
||||
|
||||
if(item.hasSize) {
|
||||
if(_imgInterval) clearInterval(_imgInterval);
|
||||
|
||||
if(item.loadError) {
|
||||
template.addClass('mfp-loading');
|
||||
mfp.updateStatus('error', imgSt.tError.replace('%url%', item.src) );
|
||||
} else {
|
||||
template.removeClass('mfp-loading');
|
||||
mfp.updateStatus('ready');
|
||||
}
|
||||
return template;
|
||||
}
|
||||
|
||||
mfp.updateStatus('loading');
|
||||
item.loading = true;
|
||||
|
||||
if(!item.hasSize) {
|
||||
item.imgHidden = true;
|
||||
template.addClass('mfp-loading');
|
||||
mfp.findImageSize(item);
|
||||
}
|
||||
|
||||
return template;
|
||||
}
|
||||
}
|
||||
});
|
66
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/inline.js
vendored
Executable file
66
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/inline.js
vendored
Executable file
@@ -0,0 +1,66 @@
|
||||
|
||||
var INLINE_NS = 'inline',
|
||||
_hiddenClass,
|
||||
_inlinePlaceholder,
|
||||
_lastInlineElement,
|
||||
_putInlineElementsBack = function() {
|
||||
if(_lastInlineElement) {
|
||||
_inlinePlaceholder.after( _lastInlineElement.addClass(_hiddenClass) ).detach();
|
||||
_lastInlineElement = null;
|
||||
}
|
||||
};
|
||||
|
||||
$.magnificPopup.registerModule(INLINE_NS, {
|
||||
options: {
|
||||
hiddenClass: 'hide', // will be appended with `mfp-` prefix
|
||||
markup: '',
|
||||
tNotFound: 'Content not found'
|
||||
},
|
||||
proto: {
|
||||
|
||||
initInline: function() {
|
||||
mfp.types.push(INLINE_NS);
|
||||
|
||||
_mfpOn(CLOSE_EVENT+'.'+INLINE_NS, function() {
|
||||
_putInlineElementsBack();
|
||||
});
|
||||
},
|
||||
|
||||
getInline: function(item, template) {
|
||||
|
||||
_putInlineElementsBack();
|
||||
|
||||
if(item.src) {
|
||||
var inlineSt = mfp.st.inline,
|
||||
el = $(item.src);
|
||||
|
||||
if(el.length) {
|
||||
|
||||
// If target element has parent - we replace it with placeholder and put it back after popup is closed
|
||||
var parent = el[0].parentNode;
|
||||
if(parent && parent.tagName) {
|
||||
if(!_inlinePlaceholder) {
|
||||
_hiddenClass = inlineSt.hiddenClass;
|
||||
_inlinePlaceholder = _getEl(_hiddenClass);
|
||||
_hiddenClass = 'mfp-'+_hiddenClass;
|
||||
}
|
||||
// replace target inline element with placeholder
|
||||
_lastInlineElement = el.after(_inlinePlaceholder).detach().removeClass(_hiddenClass);
|
||||
}
|
||||
|
||||
mfp.updateStatus('ready');
|
||||
} else {
|
||||
mfp.updateStatus('error', inlineSt.tNotFound);
|
||||
el = $('<div>');
|
||||
}
|
||||
|
||||
item.inlineElement = el;
|
||||
return el;
|
||||
}
|
||||
|
||||
mfp.updateStatus('ready');
|
||||
mfp._parseMarkup(template, {}, item);
|
||||
return template;
|
||||
}
|
||||
}
|
||||
});
|
35
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/retina.js
vendored
Executable file
35
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/retina.js
vendored
Executable file
@@ -0,0 +1,35 @@
|
||||
|
||||
var RETINA_NS = 'retina';
|
||||
|
||||
$.magnificPopup.registerModule(RETINA_NS, {
|
||||
options: {
|
||||
replaceSrc: function(item) {
|
||||
return item.src.replace(/\.\w+$/, function(m) { return '@2x' + m; });
|
||||
},
|
||||
ratio: 1 // Function or number. Set to 1 to disable.
|
||||
},
|
||||
proto: {
|
||||
initRetina: function() {
|
||||
if(window.devicePixelRatio > 1) {
|
||||
|
||||
var st = mfp.st.retina,
|
||||
ratio = st.ratio;
|
||||
|
||||
ratio = !isNaN(ratio) ? ratio : ratio();
|
||||
|
||||
if(ratio > 1) {
|
||||
_mfpOn('ImageHasSize' + '.' + RETINA_NS, function(e, item) {
|
||||
item.img.css({
|
||||
'max-width': item.img[0].naturalWidth / ratio,
|
||||
'width': '100%'
|
||||
});
|
||||
});
|
||||
_mfpOn('ElementParse' + '.' + RETINA_NS, function(e, item) {
|
||||
item.src = st.replaceSrc(item, ratio);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
183
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/zoom.js
vendored
Executable file
183
api/jquery/plugins/magnific-popup/Magnific-Popup/src/js/zoom.js
vendored
Executable file
@@ -0,0 +1,183 @@
|
||||
var hasMozTransform,
|
||||
getHasMozTransform = function() {
|
||||
if(hasMozTransform === undefined) {
|
||||
hasMozTransform = document.createElement('p').style.MozTransform !== undefined;
|
||||
}
|
||||
return hasMozTransform;
|
||||
};
|
||||
|
||||
$.magnificPopup.registerModule('zoom', {
|
||||
|
||||
options: {
|
||||
enabled: false,
|
||||
easing: 'ease-in-out',
|
||||
duration: 300,
|
||||
opener: function(element) {
|
||||
return element.is('img') ? element : element.find('img');
|
||||
}
|
||||
},
|
||||
|
||||
proto: {
|
||||
|
||||
initZoom: function() {
|
||||
var zoomSt = mfp.st.zoom,
|
||||
ns = '.zoom',
|
||||
image;
|
||||
|
||||
if(!zoomSt.enabled || !mfp.supportsTransition) {
|
||||
return;
|
||||
}
|
||||
|
||||
var duration = zoomSt.duration,
|
||||
getElToAnimate = function(image) {
|
||||
var newImg = image.clone().removeAttr('style').removeAttr('class').addClass('mfp-animated-image'),
|
||||
transition = 'all '+(zoomSt.duration/1000)+'s ' + zoomSt.easing,
|
||||
cssObj = {
|
||||
position: 'fixed',
|
||||
zIndex: 9999,
|
||||
left: 0,
|
||||
top: 0,
|
||||
'-webkit-backface-visibility': 'hidden'
|
||||
},
|
||||
t = 'transition';
|
||||
|
||||
cssObj['-webkit-'+t] = cssObj['-moz-'+t] = cssObj['-o-'+t] = cssObj[t] = transition;
|
||||
|
||||
newImg.css(cssObj);
|
||||
return newImg;
|
||||
},
|
||||
showMainContent = function() {
|
||||
mfp.content.css('visibility', 'visible');
|
||||
},
|
||||
openTimeout,
|
||||
animatedImg;
|
||||
|
||||
_mfpOn('BuildControls'+ns, function() {
|
||||
if(mfp._allowZoom()) {
|
||||
|
||||
clearTimeout(openTimeout);
|
||||
mfp.content.css('visibility', 'hidden');
|
||||
|
||||
// Basically, all code below does is clones existing image, puts in on top of the current one and animated it
|
||||
|
||||
image = mfp._getItemToZoom();
|
||||
|
||||
if(!image) {
|
||||
showMainContent();
|
||||
return;
|
||||
}
|
||||
|
||||
animatedImg = getElToAnimate(image);
|
||||
|
||||
animatedImg.css( mfp._getOffset() );
|
||||
|
||||
mfp.wrap.append(animatedImg);
|
||||
|
||||
openTimeout = setTimeout(function() {
|
||||
animatedImg.css( mfp._getOffset( true ) );
|
||||
openTimeout = setTimeout(function() {
|
||||
|
||||
showMainContent();
|
||||
|
||||
setTimeout(function() {
|
||||
animatedImg.remove();
|
||||
image = animatedImg = null;
|
||||
_mfpTrigger('ZoomAnimationEnded');
|
||||
}, 16); // avoid blink when switching images
|
||||
|
||||
}, duration); // this timeout equals animation duration
|
||||
|
||||
}, 16); // by adding this timeout we avoid short glitch at the beginning of animation
|
||||
|
||||
|
||||
// Lots of timeouts...
|
||||
}
|
||||
});
|
||||
_mfpOn(BEFORE_CLOSE_EVENT+ns, function() {
|
||||
if(mfp._allowZoom()) {
|
||||
|
||||
clearTimeout(openTimeout);
|
||||
|
||||
mfp.st.removalDelay = duration;
|
||||
|
||||
if(!image) {
|
||||
image = mfp._getItemToZoom();
|
||||
if(!image) {
|
||||
return;
|
||||
}
|
||||
animatedImg = getElToAnimate(image);
|
||||
}
|
||||
|
||||
animatedImg.css( mfp._getOffset(true) );
|
||||
mfp.wrap.append(animatedImg);
|
||||
mfp.content.css('visibility', 'hidden');
|
||||
|
||||
setTimeout(function() {
|
||||
animatedImg.css( mfp._getOffset() );
|
||||
}, 16);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
_mfpOn(CLOSE_EVENT+ns, function() {
|
||||
if(mfp._allowZoom()) {
|
||||
showMainContent();
|
||||
if(animatedImg) {
|
||||
animatedImg.remove();
|
||||
}
|
||||
image = null;
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
_allowZoom: function() {
|
||||
return mfp.currItem.type === 'image';
|
||||
},
|
||||
|
||||
_getItemToZoom: function() {
|
||||
if(mfp.currItem.hasSize) {
|
||||
return mfp.currItem.img;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
// Get element postion relative to viewport
|
||||
_getOffset: function(isLarge) {
|
||||
var el;
|
||||
if(isLarge) {
|
||||
el = mfp.currItem.img;
|
||||
} else {
|
||||
el = mfp.st.zoom.opener(mfp.currItem.el || mfp.currItem);
|
||||
}
|
||||
|
||||
var offset = el.offset();
|
||||
var paddingTop = parseInt(el.css('padding-top'),10);
|
||||
var paddingBottom = parseInt(el.css('padding-bottom'),10);
|
||||
offset.top -= ( $(window).scrollTop() - paddingTop );
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Animating left + top + width/height looks glitchy in Firefox, but perfect in Chrome. And vice-versa.
|
||||
|
||||
*/
|
||||
var obj = {
|
||||
width: el.width(),
|
||||
// fix Zepto height+padding issue
|
||||
height: (_isJQ ? el.innerHeight() : el[0].offsetHeight) - paddingBottom - paddingTop
|
||||
};
|
||||
|
||||
// I hate to do this, but there is no another option
|
||||
if( getHasMozTransform() ) {
|
||||
obj['-moz-transform'] = obj['transform'] = 'translate(' + offset.left + 'px,' + offset.top + 'px)';
|
||||
} else {
|
||||
obj.left = offset.left;
|
||||
obj.top = offset.top;
|
||||
}
|
||||
return obj;
|
||||
}
|
||||
|
||||
}
|
||||
});
|
||||
|
@@ -0,0 +1,24 @@
|
||||
{% if site.url == 'local' %}
|
||||
<!-- analytics removed -->
|
||||
{% else %}
|
||||
<!-- Analytics start -->
|
||||
<script type="text/javascript">
|
||||
var _gaq = _gaq || [];
|
||||
_gaq.push(['_setAccount', 'UA-25969065-1']);
|
||||
_gaq.push(['_trackPageview']);
|
||||
|
||||
(function() {
|
||||
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||
})();
|
||||
|
||||
function recordOutboundLink(link, category, action) {
|
||||
_gat._getTrackerByName()._trackEvent(category, action);
|
||||
setTimeout('document.location = "' + link.href + '"', 100);
|
||||
}
|
||||
</script>
|
||||
|
||||
<!-- ya metrika -->
|
||||
<script type="text/javascript">(function (d, w, c) { (w[c] = w[c] || []).push(function() { try { w.yaCounter11382601 = new Ya.Metrika({id:11382601, webvisor:true, clickmap:true, trackLinks:true, accurateTrackBounce:true}); } catch(e) { } }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function () { n.parentNode.insertBefore(s, n); }; s.type = "text/javascript"; s.async = true; s.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "yandex_metrika_callbacks");</script><noscript><div><img src="//mc.yandex.ru/watch/11382601" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
|
||||
{% endif %}
|
@@ -0,0 +1,273 @@
|
||||
<!-- Basic idea of such build tool is stolen from modernizr.com -->
|
||||
<div id="mfp-build-tool" class="mfp-hide">
|
||||
<h2>Magnific Popup v{{site.mfpversion}} Build Tool</h2>
|
||||
<form id="mfp-build-form">
|
||||
<p class="help-block">Here you can generate optimized version of main JS file. Please note that CSS you should download directly: <a target="_blank" href="https://raw.github.com/dimsemenov/Magnific-Popup/master/src/css/main.scss">Sass version</a> or <a target="_blank" href="https://raw.github.com/dimsemenov/Magnific-Popup/master/dist/magnific-popup.css">CSS version</a>.</p>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="inline" checked> Inline
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="image" checked> Image
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="ajax" checked> Ajax
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="iframe" checked> Iframe
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="gallery" checked> Gallery
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="retina" checked> High-DPI (retina) support for image type
|
||||
</label>
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" name="imagezoom" checked> Image zoom animation
|
||||
</label>
|
||||
</form>
|
||||
|
||||
<br/>
|
||||
<div>
|
||||
<button id="mfp-build-button">Generate build</button>
|
||||
<label class="checkbox">
|
||||
<input id="mfp-minify" type="checkbox" name="minify" checked="checked"> Minify code
|
||||
</label>
|
||||
</div>
|
||||
<br/>
|
||||
<p id="mfp-build-status" style="display:none"></p>
|
||||
<br/>
|
||||
<textarea id="mfp-build-tool-out" style="width: 100%; height: 300px; display:none;"></textarea>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function($) {
|
||||
|
||||
$('.mfp-build-tool-link').magnificPopup({closeBtnInside:true, type:'inline', midClick: true});
|
||||
|
||||
var h = window.location.hash;
|
||||
if(h.indexOf('build=') > -1) {
|
||||
var formInputs = $('#mfp-build-form input');
|
||||
|
||||
if(h.indexOf('&') > 0) {
|
||||
h = h.substr(0, h.indexOf('&'));
|
||||
}
|
||||
var items = h.substr(h.indexOf('build=') + 6, h.length).split('+');
|
||||
for(var i = 0; i < items.length; i++) {
|
||||
var name = items[i];
|
||||
if(name) {
|
||||
formInputs.filter('[name="' +name+ '"]').addClass('present');
|
||||
}
|
||||
}
|
||||
formInputs.not('.present').prop('checked', false);
|
||||
}
|
||||
|
||||
|
||||
var button = $('#mfp-build-button').click(function(e) {
|
||||
e.preventDefault();
|
||||
|
||||
button.attr('disabled', 'disabled');
|
||||
|
||||
var statusTimeout;
|
||||
var setStatus = function(msg, type) {
|
||||
clearTimeout(statusTimeout);
|
||||
$('#mfp-build-status').html('<span class="'+type+'">'+msg+'</span>').show();
|
||||
};
|
||||
setStatus('Wait a moment please...', 'progress');
|
||||
$('#mfp-build-tool-out').val( '' );
|
||||
|
||||
|
||||
|
||||
var minify = $('#mfp-minify')[0].checked;
|
||||
var removeModule = function(source, key) {
|
||||
source = source.replace(new RegExp("\\/\\*>>"+key+"\\*\\/[\\s|\\S]*?\\/\\*>>"+key+"\\*\\/", "ig"), "");
|
||||
return source;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var onError = function() {
|
||||
setStatus("Error: Build tool wasn't able to GET the js file. Please try again or make file by yourself using Grunt.", 'error');
|
||||
};
|
||||
|
||||
var version = '{{site.mfpversion}}';
|
||||
var loadedScripts = [];
|
||||
var onScriptsLoaded = function() {
|
||||
|
||||
|
||||
var src = loadedScripts[0];
|
||||
|
||||
var hash = '',
|
||||
name;
|
||||
|
||||
$('#mfp-build-form input').each(function() {
|
||||
name = $(this).attr('name');
|
||||
|
||||
if( this.checked ) {
|
||||
hash += name + '+';
|
||||
} else {
|
||||
src = removeModule(src, name);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var output = '';
|
||||
|
||||
if(hash) {
|
||||
hash = hash.substr(0, hash.length-1);
|
||||
}
|
||||
|
||||
if(minify) {
|
||||
src = uglify(src, ["--extra","--unsafe"]);
|
||||
output = '// Magnific Popup v'+version+' by Dmitry Semenov' + "\n";
|
||||
output += '// http://bit.ly/magnific-popup' + (hash ? '#build=' + hash : '') + "\n" + src;
|
||||
} else {
|
||||
output = src;
|
||||
}
|
||||
|
||||
if(!hash) {
|
||||
hash = 'core';
|
||||
} else {
|
||||
hash = 'core+' + hash;
|
||||
}
|
||||
|
||||
$('#mfp-build-tool-out').val( output ).show();
|
||||
|
||||
button.removeAttr('disabled');
|
||||
|
||||
setStatus('Magnific Popup main js file successfully generated! You can copy generated code from textarea below.' + (hash ? (' Your build includes: <strong>' + hash.split('+').join(', ')) + '</strong>. ' : ''), 'success');
|
||||
};
|
||||
|
||||
|
||||
$.ajax({
|
||||
url:"dist/jquery.magnific-popup.js?v="+version,
|
||||
dataType: 'text',
|
||||
success: function( data) {
|
||||
loadedScripts[0] = data;
|
||||
if(loadedScripts[1]) {
|
||||
onScriptsLoaded();
|
||||
}
|
||||
},
|
||||
error: onError
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
url:"third-party-libs/uglify.js",
|
||||
dataType: 'script',
|
||||
cache: true,
|
||||
success: function(data) {
|
||||
loadedScripts[1] = data;
|
||||
if(loadedScripts[0]) {
|
||||
onScriptsLoaded();
|
||||
}
|
||||
},
|
||||
error: onError
|
||||
});
|
||||
|
||||
});
|
||||
/* build tool END */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Popup with source code for each example
|
||||
*/
|
||||
var example,
|
||||
getCode,
|
||||
CSS,
|
||||
JS,
|
||||
HTML,
|
||||
highlighterLoaded;
|
||||
|
||||
var formatCode = function (str) {
|
||||
if(str) {
|
||||
// replace special chars
|
||||
str = str.replace(/[&<>"']/g, function($0) {
|
||||
return "&" + {"&":"amp", "<":"lt", ">":"gt", '"':"quot", "'":"#39"}[$0] + ";";
|
||||
});
|
||||
|
||||
// remove spaces from each line based on spaces on first line
|
||||
var firstLineLength = str.match(/^(\s*)/)[1].length;
|
||||
var regExp = new RegExp('^ {' + (firstLineLength-1) + '}', "gm");
|
||||
str = str.replace(regExp, '');
|
||||
|
||||
// replace spaces with tabs
|
||||
str = str.replace(/ /g,'\t');
|
||||
|
||||
str = $.trim(str);
|
||||
}
|
||||
return str;
|
||||
};
|
||||
|
||||
var highlight = function() {
|
||||
hljs.highlightBlock(JS.find('code')[0]);
|
||||
|
||||
if(CSS)
|
||||
hljs.highlightBlock(CSS.find('code')[0]);
|
||||
|
||||
if(HTML)
|
||||
hljs.highlightBlock(HTML.find('code')[0]);
|
||||
};
|
||||
|
||||
$('.example').each(function() {
|
||||
$(this).find('h3').click(function() {
|
||||
var example = $(this).parent('.example');
|
||||
var getCodeWindow = $('<div class="get-code-window"><h1>'+example.find('h3').text()+'</h1></div>');
|
||||
JS = $('<div class="highlight"><pre><code class="javascript">'+formatCode(example.find('script').eq(0).html())+'</code></pre></div>');
|
||||
|
||||
CSS = example.find('style');
|
||||
if(CSS.length) {
|
||||
CSS = $('<div class="highlight"><pre><code class="css">'+formatCode(CSS.html())+'</code></pre></div>');
|
||||
} else {
|
||||
CSS = '';
|
||||
}
|
||||
|
||||
HTML = example.find('.html-code');
|
||||
if(HTML.length) {
|
||||
HTML = $('<div class="highlight"><pre><code class="xml html">'+formatCode(HTML.html())+'</code></pre></div>');
|
||||
} else {
|
||||
HTML = '';
|
||||
}
|
||||
|
||||
if(!highlighterLoaded) {
|
||||
highlighterLoaded = true;
|
||||
var script = document.createElement("script"),
|
||||
$script = $(script);
|
||||
script.src = 'http://yandex.st/highlightjs/7.3/highlight.min.js';
|
||||
if(window.jQuery) {
|
||||
$.getScript(script.src , function() {
|
||||
highlight();
|
||||
});
|
||||
} else {
|
||||
$(script).appendTo("head").on("load", function() {
|
||||
highlight();
|
||||
});
|
||||
}
|
||||
} else {
|
||||
highlight();
|
||||
}
|
||||
|
||||
getCodeWindow.append(JS);
|
||||
getCodeWindow.append(HTML);
|
||||
getCodeWindow.append(CSS);
|
||||
|
||||
getCodeWindow.append('<p>Code above is dynamically generated directly from the source of this example.<br/>Please read <a href="documentation.html">the documentation</a> before using it.</p>');
|
||||
|
||||
$.magnificPopup.open({
|
||||
items: {
|
||||
src: getCodeWindow,
|
||||
type: 'inline'
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
676
api/jquery/plugins/magnific-popup/Magnific-Popup/website/_includes/examples.html
Executable file
676
api/jquery/plugins/magnific-popup/Magnific-Popup/website/_includes/examples.html
Executable file
@@ -0,0 +1,676 @@
|
||||
{% if site.url == 'local' %}
|
||||
<!-- <script src="third-party-libs/zepto.js"></script> -->
|
||||
<script>
|
||||
document.write('<script src=third-party-libs/' +
|
||||
('__proto__' in {} ? 'zepto' : 'jquery') +
|
||||
'.min.js><\/script>')
|
||||
</script>
|
||||
<script src="dist/jquery.magnific-popup.js?v={{site.mfpversion}}"></script>
|
||||
|
||||
{% else %}
|
||||
<script>
|
||||
document.write('<script src=third-party-libs/' +
|
||||
('__proto__' in {} ? 'zepto' : 'jquery') +
|
||||
'.min.js><\/script>')
|
||||
</script>
|
||||
<script src="dist/jquery.magnific-popup.min.js?v={{site.mfpversion}}"></script>
|
||||
{% endif %}
|
||||
|
||||
<!--
|
||||
|
||||
Each '.example' block contains JS, HTML and optionally CSS for popup.
|
||||
|
||||
-->
|
||||
<h2 id="examples">Examples</h2>
|
||||
|
||||
<div class="grid-c">
|
||||
<div class="example gc3">
|
||||
<h3>Single image lightbox</h3>
|
||||
<p>Three simple popups with different scaling settings.<br/>
|
||||
1 — fits horizontally and vertically,<br/>
|
||||
2 — only horizontally,<br/>
|
||||
3 — no gaps, zoom animation, close icon in top-right corner.<br/>
|
||||
</p>
|
||||
<div class="html-code grid-of-images">
|
||||
<a class="image-popup-vertical-fit" href="http://farm9.staticflickr.com/8241/8589392310_7b6127e243_b.jpg" title="Caption. Can be aligned to any side and contain any HTML.">
|
||||
<img src="http://farm9.staticflickr.com/8241/8589392310_7b6127e243_s.jpg" width="75" height="75" />
|
||||
</a>
|
||||
<a class="image-popup-fit-width" href="http://farm9.staticflickr.com/8379/8588290361_ecf8c27021_b.jpg" title="This image fits only horizontally.">
|
||||
<img src="http://farm9.staticflickr.com/8379/8588290361_ecf8c27021_s.jpg" width="75" height="75" />
|
||||
</a>
|
||||
<a class="image-popup-no-margins" href="http://farm4.staticflickr.com/3721/9207329484_ba28755ec4_o.jpg">
|
||||
<img src="http://farm4.staticflickr.com/3721/9207329484_ba28755ec4_o.jpg" width="107" height="75" />
|
||||
</a>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
$('.image-popup-vertical-fit').magnificPopup({
|
||||
type: 'image',
|
||||
closeOnContentClick: true,
|
||||
mainClass: 'mfp-img-mobile',
|
||||
image: {
|
||||
verticalFit: true
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
$('.image-popup-fit-width').magnificPopup({
|
||||
type: 'image',
|
||||
closeOnContentClick: true,
|
||||
image: {
|
||||
verticalFit: false
|
||||
}
|
||||
});
|
||||
|
||||
$('.image-popup-no-margins').magnificPopup({
|
||||
type: 'image',
|
||||
closeOnContentClick: true,
|
||||
closeBtnInside: false,
|
||||
fixedContentPos: true,
|
||||
mainClass: 'mfp-no-margins mfp-with-zoom', // class to remove default margin from left and right side
|
||||
image: {
|
||||
verticalFit: true
|
||||
},
|
||||
zoom: {
|
||||
enabled: true,
|
||||
duration: 300 // don't foget to change the duration also in CSS
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
<style type="text/css">
|
||||
/* padding-bottom and top for image */
|
||||
.mfp-no-margins img.mfp-img {
|
||||
padding: 0;
|
||||
}
|
||||
/* position of shadow behind the image */
|
||||
.mfp-no-margins .mfp-figure:after {
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
/* padding for main container */
|
||||
.mfp-no-margins .mfp-container {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
||||
for zoom animation
|
||||
uncomment this part if you haven't added this code anywhere else
|
||||
|
||||
*/
|
||||
/*
|
||||
|
||||
.mfp-with-zoom .mfp-container,
|
||||
.mfp-with-zoom.mfp-bg {
|
||||
opacity: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
-webkit-transition: all 0.3s ease-out;
|
||||
-moz-transition: all 0.3s ease-out;
|
||||
-o-transition: all 0.3s ease-out;
|
||||
transition: all 0.3s ease-out;
|
||||
}
|
||||
|
||||
.mfp-with-zoom.mfp-ready .mfp-container {
|
||||
opacity: 1;
|
||||
}
|
||||
.mfp-with-zoom.mfp-ready.mfp-bg {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.mfp-with-zoom.mfp-removing .mfp-container,
|
||||
.mfp-with-zoom.mfp-removing.mfp-bg {
|
||||
opacity: 0;
|
||||
}
|
||||
*/
|
||||
</style>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="example gc3">
|
||||
<h3>Lightbox gallery</h3>
|
||||
<p>You may put any HTML content in each gallery item and <a href="http://codepen.io/dimsemenov/pen/vKrqs">mix content types</a>. In this example lazy-loading of images is enabled for the next image based on move direction. If you wish to add touch-swipe support, check <a href="http://coding.smashingmagazine.com/2013/05/02/truly-responsive-lightbox/">my article</a> on the Smashing Magazine, or <a href="http://photoswipe.com">new PhotoSwipe</a> script.</p>
|
||||
<div class="html-code grid-of-images">
|
||||
<div class="popup-gallery">
|
||||
<a href="http://farm9.staticflickr.com/8242/8558295633_f34a55c1c6_b.jpg" title="The Cleaner"><img src="http://farm9.staticflickr.com/8242/8558295633_f34a55c1c6_s.jpg" width="75" height="75" /></a>
|
||||
<a href="http://farm9.staticflickr.com/8382/8558295631_0f56c1284f_b.jpg" title="Winter Dance"><img src="http://farm9.staticflickr.com/8382/8558295631_0f56c1284f_s.jpg" width="75" height="75" /></a>
|
||||
<a href="http://farm9.staticflickr.com/8225/8558295635_b1c5ce2794_b.jpg" title="The Uninvited Guest"><img src="http://farm9.staticflickr.com/8225/8558295635_b1c5ce2794_s.jpg" width="75" height="75" /></a>
|
||||
<a href="http://farm9.staticflickr.com/8383/8563475581_df05e9906d_b.jpg" title="Oh no, not again!"><img src="http://farm9.staticflickr.com/8383/8563475581_df05e9906d_s.jpg" width="75" height="75" /></a>
|
||||
<a href="http://farm9.staticflickr.com/8235/8559402846_8b7f82e05d_b.jpg" title="Swan Lake"><img src="http://farm9.staticflickr.com/8235/8559402846_8b7f82e05d_s.jpg" width="75" height="75" /></a>
|
||||
<a href="http://farm9.staticflickr.com/8235/8558295467_e89e95e05a_b.jpg" title="The Shake"><img src="http://farm9.staticflickr.com/8235/8558295467_e89e95e05a_s.jpg" width="75" height="75" /></a>
|
||||
<a href="http://farm9.staticflickr.com/8378/8559402848_9fcd90d20b_b.jpg" title="Who's that, mommy?"><img src="http://farm9.staticflickr.com/8378/8559402848_9fcd90d20b_s.jpg" width="75" height="75" /></a>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('.popup-gallery').magnificPopup({
|
||||
delegate: 'a',
|
||||
type: 'image',
|
||||
tLoading: 'Loading image #%curr%...',
|
||||
mainClass: 'mfp-img-mobile',
|
||||
gallery: {
|
||||
enabled: true,
|
||||
navigateByImgClick: true,
|
||||
preload: [0,1] // Will preload 0 - before current, and 1 after the current image
|
||||
},
|
||||
image: {
|
||||
tError: '<a href="%url%">The image #%curr%</a> could not be loaded.',
|
||||
titleSrc: function(item) {
|
||||
return item.el.attr('title') + '<small>by Marsel Van Oosten</small>';
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="example gc3">
|
||||
<h3>Zoom-gallery</h3>
|
||||
<p>If you wish to open the popup only after image is fully loaded, you may preload image via JS. Or use scaled down image instead of thumbnail. Zoom effect works only with images, for now.</p>
|
||||
<div class="html-code grid-of-images">
|
||||
<div class="zoom-gallery">
|
||||
<!--
|
||||
|
||||
Width/height ratio of thumbnail and the main image must match to avoid glitches.
|
||||
|
||||
If ratios are different, you may add CSS3 opacity transition to the main image to make the change less noticable.
|
||||
|
||||
-->
|
||||
<a href="http://farm4.staticflickr.com/3763/9204547649_0472680945_o.jpg" data-source="http://500px.com/photo/32736307" title="Into The Blue" style="width:193px;height:125px;">
|
||||
<img src="http://farm4.staticflickr.com/3763/9204547649_7de96ee188_t.jpg" width="193" height="125" />
|
||||
</a>
|
||||
<a href="http://farm3.staticflickr.com/2856/9207329420_7f2a668b06_o.jpg" data-source="http://500px.com/photo/32554131" title="Light Sabre" style="width:82px;height:125px;">
|
||||
<img src="http://farm3.staticflickr.com/2856/9207329420_e485948b01_t.jpg" width="82px" height="125" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('.zoom-gallery').magnificPopup({
|
||||
delegate: 'a',
|
||||
type: 'image',
|
||||
closeOnContentClick: false,
|
||||
closeBtnInside: false,
|
||||
mainClass: 'mfp-with-zoom mfp-img-mobile',
|
||||
image: {
|
||||
verticalFit: true,
|
||||
titleSrc: function(item) {
|
||||
return item.el.attr('title') + ' · <a class="image-source-link" href="'+item.el.attr('data-source')+'" target="_blank">image source</a>';
|
||||
}
|
||||
},
|
||||
gallery: {
|
||||
enabled: true
|
||||
},
|
||||
zoom: {
|
||||
enabled: true,
|
||||
duration: 300, // don't foget to change the duration also in CSS
|
||||
opener: function(element) {
|
||||
return element.find('img');
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<style type="text/css">
|
||||
.image-source-link {
|
||||
color: #98C3D1;
|
||||
}
|
||||
|
||||
.mfp-with-zoom .mfp-container,
|
||||
.mfp-with-zoom.mfp-bg {
|
||||
opacity: 0;
|
||||
-webkit-backface-visibility: hidden;
|
||||
/* ideally, transition speed should match zoom duration */
|
||||
-webkit-transition: all 0.3s ease-out;
|
||||
-moz-transition: all 0.3s ease-out;
|
||||
-o-transition: all 0.3s ease-out;
|
||||
transition: all 0.3s ease-out;
|
||||
}
|
||||
|
||||
.mfp-with-zoom.mfp-ready .mfp-container {
|
||||
opacity: 1;
|
||||
}
|
||||
.mfp-with-zoom.mfp-ready.mfp-bg {
|
||||
opacity: 0.8;
|
||||
}
|
||||
|
||||
.mfp-with-zoom.mfp-removing .mfp-container,
|
||||
.mfp-with-zoom.mfp-removing.mfp-bg {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="example gc3">
|
||||
<h3>Popup with video or map</h3>
|
||||
<p>In this example lightboxes are automatically disabled on small screen size and default behavior of link is triggered.</p>
|
||||
<div class="html-code">
|
||||
<a class="popup-youtube" href="http://www.youtube.com/watch?v=0O2aH4XLbto">Open YouTube video</a><br/>
|
||||
<a class="popup-vimeo" href="https://vimeo.com/45830194" >Open Vimeo video</a><br/>
|
||||
<a class="popup-gmaps" href="https://maps.google.com/maps?q=221B+Baker+Street,+London,+United+Kingdom&hl=en&t=v&hnear=221B+Baker+St,+London+NW1+6XE,+United+Kingdom">Open Google Map</a>
|
||||
</div>
|
||||
<style type="text/css">
|
||||
/**
|
||||
* Simple fade transition,
|
||||
*/
|
||||
.mfp-fade.mfp-bg {
|
||||
opacity: 0;
|
||||
-webkit-transition: all 0.15s ease-out;
|
||||
-moz-transition: all 0.15s ease-out;
|
||||
transition: all 0.15s ease-out;
|
||||
}
|
||||
.mfp-fade.mfp-bg.mfp-ready {
|
||||
opacity: 0.8;
|
||||
}
|
||||
.mfp-fade.mfp-bg.mfp-removing {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.mfp-fade.mfp-wrap .mfp-content {
|
||||
opacity: 0;
|
||||
-webkit-transition: all 0.15s ease-out;
|
||||
-moz-transition: all 0.15s ease-out;
|
||||
transition: all 0.15s ease-out;
|
||||
}
|
||||
.mfp-fade.mfp-wrap.mfp-ready .mfp-content {
|
||||
opacity: 1;
|
||||
}
|
||||
.mfp-fade.mfp-wrap.mfp-removing .mfp-content {
|
||||
opacity: 0;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
|
||||
disableOn: 700,
|
||||
type: 'iframe',
|
||||
mainClass: 'mfp-fade',
|
||||
removalDelay: 160,
|
||||
preloader: false,
|
||||
|
||||
fixedContentPos: false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="example gc3">
|
||||
<h3>Dialog with CSS animation</h3>
|
||||
<p>Animations are added with simple CSS transitions, you can make them look however you wish.<br/>More <a href="http://codepen.io/dimsemenov/pen/GAIkt">animation effects on CodePen</a>.</p>
|
||||
<div class="html-code">
|
||||
<a class="popup-with-zoom-anim" href="#small-dialog" >Open with fade-zoom animation</a><br/>
|
||||
<a class="popup-with-move-anim" href="#small-dialog" >Open with fade-slide animation</a>
|
||||
|
||||
<!-- dialog itself, mfp-hide class is required to make dialog hidden -->
|
||||
<div id="small-dialog" class="zoom-anim-dialog mfp-hide">
|
||||
<h1>Dialog example</h1>
|
||||
<p>This is dummy copy. It is not meant to be read. It has been placed here solely to demonstrate the look and feel of finished, typeset text. Only for show. He who searches for meaning here will be sorely disappointed.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('.popup-with-zoom-anim').magnificPopup({
|
||||
type: 'inline',
|
||||
|
||||
fixedContentPos: false,
|
||||
fixedBgPos: true,
|
||||
|
||||
overflowY: 'auto',
|
||||
|
||||
closeBtnInside: true,
|
||||
preloader: false,
|
||||
|
||||
midClick: true,
|
||||
removalDelay: 300,
|
||||
mainClass: 'my-mfp-zoom-in'
|
||||
});
|
||||
|
||||
$('.popup-with-move-anim').magnificPopup({
|
||||
type: 'inline',
|
||||
|
||||
fixedContentPos: false,
|
||||
fixedBgPos: true,
|
||||
|
||||
overflowY: 'auto',
|
||||
|
||||
closeBtnInside: true,
|
||||
preloader: false,
|
||||
|
||||
midClick: true,
|
||||
removalDelay: 300,
|
||||
mainClass: 'my-mfp-slide-bottom'
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
/* Styles for dialog window */
|
||||
#small-dialog {
|
||||
background: white;
|
||||
padding: 20px 30px;
|
||||
text-align: left;
|
||||
max-width: 400px;
|
||||
margin: 40px auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Fade-zoom animation for first dialog
|
||||
*/
|
||||
|
||||
/* start state */
|
||||
.my-mfp-zoom-in .zoom-anim-dialog {
|
||||
opacity: 0;
|
||||
|
||||
-webkit-transition: all 0.2s ease-in-out;
|
||||
-moz-transition: all 0.2s ease-in-out;
|
||||
-o-transition: all 0.2s ease-in-out;
|
||||
transition: all 0.2s ease-in-out;
|
||||
|
||||
|
||||
|
||||
-webkit-transform: scale(0.8);
|
||||
-moz-transform: scale(0.8);
|
||||
-ms-transform: scale(0.8);
|
||||
-o-transform: scale(0.8);
|
||||
transform: scale(0.8);
|
||||
}
|
||||
|
||||
/* animate in */
|
||||
.my-mfp-zoom-in.mfp-ready .zoom-anim-dialog {
|
||||
opacity: 1;
|
||||
|
||||
-webkit-transform: scale(1);
|
||||
-moz-transform: scale(1);
|
||||
-ms-transform: scale(1);
|
||||
-o-transform: scale(1);
|
||||
transform: scale(1);
|
||||
}
|
||||
|
||||
/* animate out */
|
||||
.my-mfp-zoom-in.mfp-removing .zoom-anim-dialog {
|
||||
-webkit-transform: scale(0.8);
|
||||
-moz-transform: scale(0.8);
|
||||
-ms-transform: scale(0.8);
|
||||
-o-transform: scale(0.8);
|
||||
transform: scale(0.8);
|
||||
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* Dark overlay, start state */
|
||||
.my-mfp-zoom-in.mfp-bg {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.3s ease-out;
|
||||
-moz-transition: opacity 0.3s ease-out;
|
||||
-o-transition: opacity 0.3s ease-out;
|
||||
transition: opacity 0.3s ease-out;
|
||||
}
|
||||
/* animate in */
|
||||
.my-mfp-zoom-in.mfp-ready.mfp-bg {
|
||||
opacity: 0.8;
|
||||
}
|
||||
/* animate out */
|
||||
.my-mfp-zoom-in.mfp-removing.mfp-bg {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Fade-move animation for second dialog
|
||||
*/
|
||||
|
||||
/* at start */
|
||||
.my-mfp-slide-bottom .zoom-anim-dialog {
|
||||
opacity: 0;
|
||||
-webkit-transition: all 0.2s ease-out;
|
||||
-moz-transition: all 0.2s ease-out;
|
||||
-o-transition: all 0.2s ease-out;
|
||||
transition: all 0.2s ease-out;
|
||||
|
||||
-webkit-transform: translateY(-20px) perspective( 600px ) rotateX( 10deg );
|
||||
-moz-transform: translateY(-20px) perspective( 600px ) rotateX( 10deg );
|
||||
-ms-transform: translateY(-20px) perspective( 600px ) rotateX( 10deg );
|
||||
-o-transform: translateY(-20px) perspective( 600px ) rotateX( 10deg );
|
||||
transform: translateY(-20px) perspective( 600px ) rotateX( 10deg );
|
||||
|
||||
}
|
||||
|
||||
/* animate in */
|
||||
.my-mfp-slide-bottom.mfp-ready .zoom-anim-dialog {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateY(0) perspective( 600px ) rotateX( 0 );
|
||||
-moz-transform: translateY(0) perspective( 600px ) rotateX( 0 );
|
||||
-ms-transform: translateY(0) perspective( 600px ) rotateX( 0 );
|
||||
-o-transform: translateY(0) perspective( 600px ) rotateX( 0 );
|
||||
transform: translateY(0) perspective( 600px ) rotateX( 0 );
|
||||
}
|
||||
|
||||
/* animate out */
|
||||
.my-mfp-slide-bottom.mfp-removing .zoom-anim-dialog {
|
||||
opacity: 0;
|
||||
|
||||
-webkit-transform: translateY(-10px) perspective( 600px ) rotateX( 10deg );
|
||||
-moz-transform: translateY(-10px) perspective( 600px ) rotateX( 10deg );
|
||||
-ms-transform: translateY(-10px) perspective( 600px ) rotateX( 10deg );
|
||||
-o-transform: translateY(-10px) perspective( 600px ) rotateX( 10deg );
|
||||
transform: translateY(-10px) perspective( 600px ) rotateX( 10deg );
|
||||
}
|
||||
|
||||
/* Dark overlay, start state */
|
||||
.my-mfp-slide-bottom.mfp-bg {
|
||||
opacity: 0;
|
||||
|
||||
-webkit-transition: opacity 0.3s ease-out;
|
||||
-moz-transition: opacity 0.3s ease-out;
|
||||
-o-transition: opacity 0.3s ease-out;
|
||||
transition: opacity 0.3s ease-out;
|
||||
}
|
||||
/* animate in */
|
||||
.my-mfp-slide-bottom.mfp-ready.mfp-bg {
|
||||
opacity: 0.8;
|
||||
}
|
||||
/* animate out */
|
||||
.my-mfp-slide-bottom.mfp-removing.mfp-bg {
|
||||
opacity: 0;
|
||||
}
|
||||
</style>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="example gc3">
|
||||
<h3>Popup with form</h3>
|
||||
<p>Entered data is not lost if you open and close the popup or if you go to another page and then press back browser button.</p>
|
||||
<div class="html-code">
|
||||
<!-- link that opens popup -->
|
||||
<a class="popup-with-form" href="#test-form">Open form</a>
|
||||
|
||||
<!-- form itself -->
|
||||
<form id="test-form" class="mfp-hide white-popup-block">
|
||||
<h1>Form</h1>
|
||||
<fieldset style="border:0;">
|
||||
<p>Lightbox has an option to automatically focus on the first input. It's strongly recommended to use <code>inline</code> popup type for lightboxes with form instead of <code>ajax</code> (to keep entered data if the user accidentally refreshed the page).</p>
|
||||
<ol>
|
||||
<li>
|
||||
<label for="name">Name</label>
|
||||
<input id="name" name="name" type="text" placeholder="Name" required>
|
||||
</li>
|
||||
<li>
|
||||
<label for="email">Email</label>
|
||||
<input id="email" name="email" type="email" placeholder="example@domain.com" required>
|
||||
</li>
|
||||
<li>
|
||||
<label for="phone">Phone</label>
|
||||
<input id="phone" name="phone" type="tel" placeholder="Eg. +447500000000" required>
|
||||
</li>
|
||||
<li>
|
||||
<label for="textarea">Textarea</label><br/>
|
||||
<textarea id="textarea">Try to resize me to see how popup CSS-based resizing works.</textarea>
|
||||
</li>
|
||||
</ol>
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('.popup-with-form').magnificPopup({
|
||||
type: 'inline',
|
||||
preloader: false,
|
||||
focus: '#name',
|
||||
|
||||
// When elemened is focused, some mobile browsers in some cases zoom in
|
||||
// It looks not nice, so we disable it:
|
||||
callbacks: {
|
||||
beforeOpen: function() {
|
||||
if($(window).width() < 700) {
|
||||
this.st.focus = false;
|
||||
} else {
|
||||
this.st.focus = '#name';
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="example gc3">
|
||||
<h3>Ajax popup</h3>
|
||||
<p>You have full control of what is displayed in popup, align it to any side via CSS, enable or disable scroll on right side of window - whatever.</p>
|
||||
<div class="html-code">
|
||||
<a class="simple-ajax-popup-align-top" href="site-assets/ajax/test-ajax.html" >Load content via ajax</a><br/>
|
||||
<a class="simple-ajax-popup" href="site-assets/ajax/test-ajax-2.html" >Load another content via ajax</a>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
$('.simple-ajax-popup-align-top').magnificPopup({
|
||||
type: 'ajax',
|
||||
alignTop: true,
|
||||
overflowY: 'scroll' // as we know that popup content is tall we set scroll overflow by default to avoid jump
|
||||
});
|
||||
|
||||
$('.simple-ajax-popup').magnificPopup({
|
||||
type: 'ajax'
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="example gc3">
|
||||
<h3>Modal popup</h3>
|
||||
<p>A modal popup disables the usual ways to close popups.</p>
|
||||
<div class="html-code">
|
||||
<a class="popup-modal" href="#test-modal">Open modal</a>
|
||||
|
||||
<div id="test-modal" class="mfp-hide white-popup-block">
|
||||
<h1>Modal dialog</h1>
|
||||
<p>You won't be able to dismiss this by usual means (escape or
|
||||
click button), but you can close it programatically based on
|
||||
user choices or actions.</p>
|
||||
<p><a class="popup-modal-dismiss" href="#">Dismiss</a></p>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$('.popup-modal').magnificPopup({
|
||||
type: 'inline',
|
||||
preloader: false,
|
||||
focus: '#username',
|
||||
modal: true
|
||||
});
|
||||
$(document).on('click', '.popup-modal-dismiss', function (e) {
|
||||
e.preventDefault();
|
||||
$.magnificPopup.close();
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="example gc3">
|
||||
<h3>Error handling</h3>
|
||||
<p>This is just basic example of how error messages are displayed. Surely, you can change text or style them.</p>
|
||||
<div class="html-code">
|
||||
<!-- classes mfp-image and mfp-ajax define type of the popup -->
|
||||
<a id="broken-image" class="mfp-image" href="http://upload.wikimedia.org/wikipedia/commons/thumb/f/f3/Blois_Loire_Panorama_-_July_2011.jpg/640px-Blois_Loire_Panorama_-_July_2011-fake.jpg" >Broken image</a><br/>
|
||||
<a id="broken-ajax" class="mfp-ajax" href="http://example.com/fakeg" >Broken ajax request</a>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#broken-image, #broken-ajax').magnificPopup({});
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <div class="example gc3">
|
||||
<h3>Other variations</h3>
|
||||
<div class="html-code">
|
||||
<a id="inline-html-content" class="mfp-inline" data-mfp-src="#custom-content" href="#custom-content" >Open inline text block</a>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
$('#inline-html-content').magnificPopup({
|
||||
disableOn:0,
|
||||
alignTop: true,
|
||||
marTop: 0,
|
||||
marBottom: 0,
|
||||
closeBtnInside: true,
|
||||
mainClass: 'mfp-dark-close-button mfp-with-40-margin',
|
||||
preloader: false
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</div> -->
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!--
|
||||
|
||||
Examples end.
|
||||
|
||||
-->
|
50
api/jquery/plugins/magnific-popup/Magnific-Popup/website/_includes/logo.html
Executable file
50
api/jquery/plugins/magnific-popup/Magnific-Popup/website/_includes/logo.html
Executable file
@@ -0,0 +1,50 @@
|
||||
<script type="text/javascript">
|
||||
(function() {
|
||||
|
||||
var isCanvasSupported = function () {
|
||||
var elem = document.createElement('canvas');
|
||||
return !!(elem.getContext && elem.getContext('2d'));
|
||||
};
|
||||
|
||||
if( isCanvasSupported() ) {
|
||||
|
||||
var canvas = document.getElementById('broken-glass'),
|
||||
context = canvas.getContext('2d'),
|
||||
width = canvas.width = Math.min(800, window.innerWidth),
|
||||
height = canvas.height,
|
||||
numTriangles = 100,
|
||||
rand = function(min, max){
|
||||
return Math.floor( (Math.random() * (max - min + 1) ) + min);
|
||||
};
|
||||
|
||||
window.drawTriangles = function(){
|
||||
context.clearRect(0, 0, width, height);
|
||||
var hue = rand(0,360);
|
||||
var increment = 80 / numTriangles;
|
||||
for(var i = 0; i < numTriangles; i++) {
|
||||
context.beginPath();
|
||||
context.moveTo(rand(0,width), rand(0,height) );
|
||||
context.lineTo(rand(0,width), rand(0,height) );
|
||||
context.lineTo(rand(0,width), rand(0,height) );
|
||||
context.globalAlpha = 0.5;
|
||||
context.fillStyle = 'hsl('+Math.round(hue)+', '+rand(15,60)+'%, '+ rand(10, 60) +'%)';
|
||||
context.closePath();
|
||||
context.fill();
|
||||
|
||||
hue+=increment;
|
||||
if(hue > 360) hue = 0;
|
||||
}
|
||||
canvas.style.cssText = '-webkit-filter: contrast(115%);';
|
||||
};
|
||||
|
||||
document.getElementById('logo-title').style.color = 'rgba(250, 250, 250, 0.95)';
|
||||
drawTriangles();
|
||||
|
||||
var el = document.getElementById('logo');
|
||||
el.onclick = function() {
|
||||
drawTriangles();
|
||||
};
|
||||
}
|
||||
|
||||
})();
|
||||
</script>
|
@@ -0,0 +1,99 @@
|
||||
<div id="mc_embed_signup" class="embed-form zoom-anim-dialog mfp-hide">
|
||||
<style>
|
||||
#mc_embed_signup h4 {
|
||||
font-size: 30px;
|
||||
line-height: 1.2;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
#mc_embed_signup input[type="email"] {
|
||||
border: 1px solid #CCC;
|
||||
border-top: 1px solid #999;
|
||||
padding: 5px;
|
||||
font-size: 18px;
|
||||
width: 200px;
|
||||
margin-right: 10px;
|
||||
height: 25px;
|
||||
transition: all 0.3s ease;
|
||||
-moz-transition: all 0.3s ease;
|
||||
-webkit-transition: all 0.3s ease;
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
}
|
||||
#mc_embed_signup input[type="email"]:focus {
|
||||
background-color: #FFF;
|
||||
border: 1px solid #3169B3;
|
||||
box-shadow: #3169B3 0px 0px 5px;
|
||||
-moz-box-shadow: #3169B3 0px 0px 5px;
|
||||
-webkit-box-shadow: #3169B3 0px 0px 5px;
|
||||
outline: none;
|
||||
}
|
||||
#mc_embed_signup input[type="submit"] {
|
||||
border: 1px solid #3169B3;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
color: #FFF;
|
||||
height: auto;
|
||||
padding: 8px 13px;
|
||||
cursor: pointer;
|
||||
background-color: #3169B3;
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
-webkit-appearance: none;
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.embed-form {
|
||||
padding: 30px;
|
||||
background: #FFF;
|
||||
margin: 30px auto;
|
||||
display: block;
|
||||
width: auto;
|
||||
max-width: 350px;
|
||||
position: relative;
|
||||
}
|
||||
#mc_embed_signup .mc-field-group {
|
||||
margin-top: 20px;
|
||||
}
|
||||
#mc_embed_signup p {
|
||||
font-size: 15px;
|
||||
color: #4F4F4F;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
if(window.$) {
|
||||
$(document).ready(function() {
|
||||
$('.wp-version-link').magnificPopup({
|
||||
type: 'inline',
|
||||
|
||||
fixedContentPos: false,
|
||||
fixedBgPos: true,
|
||||
|
||||
overflowY: 'auto',
|
||||
|
||||
closeBtnInside: true,
|
||||
preloader: false,
|
||||
|
||||
removalDelay: 300,
|
||||
mainClass: 'my-mfp-zoom-in'
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<form action="http://dimsemenov.us1.list-manage.com/subscribe/post?u=ef6026d946a7b5d41d92c02e4&id=54fae727da" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
|
||||
<h4>Magnific WordPress Plugin is under development!</h4>
|
||||
<p>To get notified about the release, subscribe to my Mailchimp list that I send 3-4 times a year. Any feature requests are welcome.</p>
|
||||
<div class="mc-field-group">
|
||||
<input type="email" value="" name="EMAIL" placeholder="Your email" class="required email" id="mce-EMAIL">
|
||||
<input type="hidden" id="group_2" name="group[2065][2]" value="true">
|
||||
<input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button">
|
||||
</div>
|
||||
|
||||
<div id="mce-responses" class="clear">
|
||||
<div class="response" id="mce-error-response" style="display:none"></div>
|
||||
<div class="response" id="mce-success-response" style="display:none"></div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
@@ -0,0 +1,77 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en" prefix="og: http://ogp.me/ns#">
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
|
||||
<title>{{ page.title }}</title>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="description" content="{{page.description}}"/>
|
||||
<meta name="viewport" content="width = device-width, initial-scale = 1.0" />
|
||||
<meta name="author" content="Dmitry Semenov">
|
||||
<link rel="canonical" href="{{page.canonical_url}}" />
|
||||
|
||||
<meta property="og:url" content="{{page.canonical_url}}">
|
||||
<meta property="og:title" content="{{page.title}}">
|
||||
<meta property="og:description" content="{{page.description}}">
|
||||
<meta property="og:image" content="http://dimsemenov.com/magnific-og-400x400.jpg">
|
||||
|
||||
<link href="https://plus.google.com/102586375605352607718" rel="publisher" />
|
||||
|
||||
{% if site.url == 'local' %}
|
||||
<link href="site-assets/site.css?v={{site.mfpversion}}" rel="stylesheet" />
|
||||
<link href="dist/magnific-popup.css?v={{site.mfpversion}}" rel="stylesheet" />
|
||||
{% else %}
|
||||
<link href="site-assets/all.min.css?v={{site.mfpversion}}" rel="stylesheet" />
|
||||
{% endif %}
|
||||
|
||||
|
||||
{% if page.title == 'Magnific Popup Documentation' %}
|
||||
<style type="text/css"> #main-wrapper{background: #FFF;} </style>
|
||||
{% endif %}
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div id="main-wrapper">
|
||||
|
||||
{{ content | markdown }}
|
||||
|
||||
<div id="footer">
|
||||
Created by <a href="http://dimsemenov.com" rel="author">Dmitry Semenov</a>.{% if page.include_credit %} Photography in demo by <a href="http://www.squiver.com">Marsel Van Oosten</a>{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{{page.footer}}
|
||||
|
||||
{% if page.addjs %}
|
||||
{% if site.url == 'local' %}
|
||||
<script>
|
||||
document.write('<script src=third-party-libs/' +
|
||||
('__proto__' in {} ? 'zepto' : 'jquery') +
|
||||
'.js><\/script>')
|
||||
</script>
|
||||
<script src="dist/jquery.magnific-popup.js?v={{site.mfpversion}}"></script>
|
||||
{% else %}
|
||||
<script>
|
||||
document.write('<script src=third-party-libs/' +
|
||||
('__proto__' in {} ? 'zepto' : 'jquery') +
|
||||
'.min.js><\/script>')
|
||||
</script>
|
||||
<script src="dist/jquery.magnific-popup.min.js?v={{site.mfpversion}}"></script>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% include analytics.html %}
|
||||
|
||||
{% if page.buildtool %}
|
||||
{% include build-tool.html %}
|
||||
{% endif %}
|
||||
|
||||
{% if site.url == 'local' %}
|
||||
<strong style="display:block; width:100%;text-align:center;">This page is just for tests and should not be used for production!</strong>
|
||||
{% endif %}
|
||||
</body>
|
||||
</html>
|
1222
api/jquery/plugins/magnific-popup/Magnific-Popup/website/documentation.md
Executable file
1222
api/jquery/plugins/magnific-popup/Magnific-Popup/website/documentation.md
Executable file
File diff suppressed because it is too large
Load Diff
101
api/jquery/plugins/magnific-popup/Magnific-Popup/website/index.html
Executable file
101
api/jquery/plugins/magnific-popup/Magnific-Popup/website/index.html
Executable file
@@ -0,0 +1,101 @@
|
||||
---
|
||||
layout: default
|
||||
title: Magnific Popup: Responsive jQuery Lightbox Plugin
|
||||
description: Light and open source responsive lightbox plugin with focus on performance, for jQuery and Zepto.js. High-DPI (retina) display support, fast tap for touch devices.
|
||||
canonical_url: http://dimsemenov.com/plugins/magnific-popup/
|
||||
include_credit: true
|
||||
buildtool: true
|
||||
---
|
||||
|
||||
<div id="logo">
|
||||
<canvas id="broken-glass"></canvas>
|
||||
<h1 id="logo-title">Magnific Popup</h1>
|
||||
</div>
|
||||
{% include logo.html %}
|
||||
<div>
|
||||
<h2 class="intro">Magnific Popup is a responsive lightbox & dialog script with focus on performance and providing best experience for user with any device<br/>(for jQuery or Zepto.js).</h2>
|
||||
<div id="header-links">
|
||||
<a href="documentation.html">Documentation</a> · <a href="https://github.com/dimsemenov/Magnific-Popup">GitHub</a> · <a href="wordpress.html" class="wp-version-link" data-mfp-src="#mc_embed_signup">WordPress plugin</a> · <a href="#mfp-build-tool" class="mfp-build-tool-link">Build tool</a> · <a class="smashing-link" href="http://coding.smashingmagazine.com/2013/05/02/truly-responsive-lightbox/">How it was made</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% include examples.html %}
|
||||
|
||||
<p id="smashing">Don't forget to check out <a href="http://coding.smashingmagazine.com/2013/05/02/truly-responsive-lightbox/">my new article</a> about this plugin on the <a class="smashing-link" href="http://coding.smashingmagazine.com/2013/05/02/truly-responsive-lightbox/">Smashing Magazine</a>.</p>
|
||||
|
||||
|
||||
<h2>What makes this plugin different?</h2>
|
||||
<div class="features grid-c">
|
||||
|
||||
<div class="gc3">
|
||||
<h3>Light and modular</h3>
|
||||
<p>You can choose to include only the features that you need using the <a href="#mfp-build-tool" class="mfp-build-tool-link popup-link">online build tool</a> or by compiling it yourself with <a href="http://gruntjs.com">Grunt.js</a>. Size of core JS file is about <strong>3KB</strong> + each module weighs about 0.5KB (gzipped). Sass CSS preprocessor is used for easier skinning, but you're not obligated to use it.</p>
|
||||
</div>
|
||||
<div class="gc3">
|
||||
<h3>Content is resized with CSS</h3>
|
||||
<p>The majority of lightbox plugins require you to define size of it via JS option. Magnific Popup does not - feel free to use relative units like EM's or resize lightbox with help of CSS media queries. Update content inside lightbox without worrying about how it'll resize and center.</p>
|
||||
</div>
|
||||
<div class="gc3">
|
||||
<h3>Fast</h3>
|
||||
<p>Magnific Popup displays images before they're completely loaded to take full advantage of progressive loading. For in and out transitions CSS3 is used instead of slow JavaScript animation.</p>
|
||||
</div>
|
||||
<div class="gc3">
|
||||
<h3>High-DPI (Retina) display support</h3>
|
||||
<p>Default controls are made with pure CSS, without external graphics. For the main image there is a built in way to provide appropriate source for different pixel density displays.</p>
|
||||
</div>
|
||||
<div class="gc3">
|
||||
<h3>Conditional lightbox</h3>
|
||||
<p>Plugin has an option to automatically switch to alternative mobile-friendly source on small screen size. Brad Frost has a <a href="http://bradfrostweb.com/blog/post/conditional-lightbox/">terrific article</a> about this technique.</p>
|
||||
</div>
|
||||
<div class="gc3">
|
||||
<h3>Memory management</h3>
|
||||
<p>Popup has an extendable micro templating engine that reuses existing DOM elements (<a href="http://codepen.io/dimsemenov/pen/sHoxp">example</a>), which is especially useful when your popups same pattern.</p>
|
||||
</div>
|
||||
</div><br/>
|
||||
|
||||
{% include signup.html %}
|
||||
|
||||
|
||||
<h2>Browser support</h2>
|
||||
<p>Tested on desktop: Chrome, Safari, FF, Opera, IE8+, partial support of IE7 (works, but some visual layout features, like vertical centering, are missing). Mobile: default browser in Android 2.3+, iOS5+, Blackberry
|
||||
10+, WP7+, mobile Opera and Chrome on Android. If you noticed any bug, please open an <a href="https://github.com/dimsemenov/Magnific-Popup/issues?state=open">issue on GitHub</a></p>
|
||||
|
||||
<h2 id="license">License</h2>
|
||||
<p>Script is available under MIT license and will always be kept this way.<br/>But please do me a favor and do not create a public WordPress plugin based on it, because I will make it soon and it will be open souce too. (<a href="http://dimsemenov.com/subscribe.html">Want to get notified?</a>).
|
||||
</p>
|
||||
|
||||
<h2>Bugs & contributing</h2>
|
||||
<p>Please report bugs via <a href="https://github.com/dimsemenov/Magnific-Popup/issues">GitHub</a> and ask general questions through <a href="http://stackoverflow.com/questions/ask?tags=magnific-popup">StackOverflow</a>. Feel free to submit commit, even the tiniest contributions to the script or to the documentation are very welcome.</p>
|
||||
<p>Special thanks to:</p>
|
||||
<ul>
|
||||
<li><a href="https://twitter.com/lokesh">Lokesh Dhakar</a> for original Lightbox script.</li>
|
||||
<li><a href="https://twitter.com/chriscoyier">Chris Coyier</a> for awesome CSS techniques.</li>
|
||||
<li><a href="https://twitter.com/brad_frost">Brad Frost</a> for conditional lightbox technique.</li>
|
||||
</uL>
|
||||
|
||||
<h2>Updates</h2>
|
||||
<p>If you wish to get notified about important plugin updates, you may star and watch the repository on <a href="https://github.com/dimsemenov/Magnific-Popup">GitHub</a>, follow <a href="http://twitter.com/dimsemenov">me on Twitter</a>, or join my tiny Mailchimp <a href="http://dimsemenov.com/subscribe.html">email newsletter</a> that I send 3-4 times a year.</p>
|
||||
|
||||
|
||||
<div class="share-buttons">
|
||||
<h2>Please spread the word if you find the plugin useful</h2>
|
||||
<div id="buttons-row">
|
||||
<a id="tweet" rel="nofollow" href="https://twitter.com/intent/tweet?text=Magnific%20Popup%20-%20responsive%20lightbox%20plugin&url=http%3A%2F%2Fbit.ly%2Fmagnificpopup&via=dimsemenov">Tweet!</a>
|
||||
<a id="like" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fdimsemenov.com%2Fplugins%2Fmagnific-popup%2F%3Futm_source%3Dfb%26utm_medium%3Dsocial%26utm_campaign%3Dmfp">Like!</a>
|
||||
<a id="gplus" rel="nofollow" href="https://plus.google.com/share?url=http%3A%2F%2Fdimsemenov.com%2Fplugins%2Fmagnific-popup%2F%3Futm_source%3Dgplus%26utm_medium%3Dsocial%26utm_campaign%3Dmfp">+1</a>
|
||||
<iframe src="http://ghbtns.com/github-btn.html?user=dimsemenov&repo=magnific-popup&type=watch&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="155" height="30" style="transform: translateY(8px);-moz-transform: translateY(8px);-webkit-transform: translateY(8px); margin-left: 9px;"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
(function(){
|
||||
var openWindowPopup = function(e) {
|
||||
if(!e) return;
|
||||
e.preventDefault();
|
||||
window.open(e.target.href, "intent", "scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left=" + (window.screen ? Math.round(screen.width / 2 - 275) : 50) + ",top=" + 100);
|
||||
};
|
||||
var ids = ['tweet', 'like', 'gplus'];
|
||||
for(var i = 0; i < ids.length; i++) {
|
||||
document.getElementById(ids[i]).onclick = openWindowPopup;
|
||||
}
|
||||
})();
|
||||
</script>
|
@@ -0,0 +1,29 @@
|
||||
<div class="ajax-text-and-image white-popup-block">
|
||||
<style>
|
||||
.ajax-text-and-image {
|
||||
max-width:800px; margin: 20px auto; background: #FFF; padding: 0; line-height: 0;
|
||||
}
|
||||
.ajcol {
|
||||
width: 50%; float:left;
|
||||
}
|
||||
.ajcol img {
|
||||
width: 100%; height: auto;
|
||||
}
|
||||
@media all and (max-width:30em) {
|
||||
.ajcol {
|
||||
width: 100%;
|
||||
float:none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<div class="ajcol">
|
||||
<img src="http://upload.wikimedia.org/wikipedia/commons/thumb/e/e7/Marabou_stork%2C_Leptoptilos_crumeniferus_edit1.jpg/603px-Marabou_stork%2C_Leptoptilos_crumeniferus_edit1.jpg"/>
|
||||
</div>
|
||||
<div class="ajcol" style="line-height: 1.231;">
|
||||
<div style="padding: 1em">
|
||||
<h1>This is just block of HTML, loaded via ajax</h1>
|
||||
<p>You can put absolutely any HTML here and resize it dynamically just with help of CSS.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear:both; line-height: 0;"></div>
|
||||
</div>
|
@@ -0,0 +1,10 @@
|
||||
<div id="custom-content" class="white-popup-block" style="max-width:600px; margin: 20px auto;">
|
||||
<h1>HTML content, loaded via ajax</h1>
|
||||
<style>
|
||||
#custom-content img {max-width: 100%;margin-bottom: 10px;}
|
||||
</style>
|
||||
<p>This is dummy copy. It is not meant to be read. It has been placed here solely to demonstrate the look and feel of finished, typeset text. Only for show. He who searches for meaning here will be sorely disappointed. These words are here to provide the reader with a basic impression of how actual text will appear in its final presentation. </p>
|
||||
<p>This is dummy copy. It's Greek to you. Unless, of course, you're Greek, in which case, it really makes no sense. Why, you can't even read it! It is strictly for mock-ups. You may mock it up as strictly as you wish.</p>
|
||||
<img src="http://farm9.staticflickr.com/8242/8558295633_f34a55c1c6_b.jpg" />
|
||||
<img src="http://farm9.staticflickr.com/8382/8558295631_0f56c1284f_b.jpg" />
|
||||
</div>
|
861
api/jquery/plugins/magnific-popup/Magnific-Popup/website/site-assets/site.css
Executable file
861
api/jquery/plugins/magnific-popup/Magnific-Popup/website/site-assets/site.css
Executable file
@@ -0,0 +1,861 @@
|
||||
/* Demo site CSS. Not mobile first, not semantic, not optimized, made for 20 minutes, mess */
|
||||
html, body, div, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, ol, ul, li, form, fieldset, legend, label, table, header, footer, nav, section, figure {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
html {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
body {
|
||||
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
|
||||
font-size: 14px;
|
||||
line-height: 1.6;
|
||||
color: #5A6064;
|
||||
}
|
||||
pre,code{
|
||||
tab-size: 4;
|
||||
}
|
||||
p {
|
||||
margin: 0 0 11px;
|
||||
}
|
||||
ul {
|
||||
list-style: disc;
|
||||
}
|
||||
ul, ol {
|
||||
padding: 0;
|
||||
margin: 0 0 11px 25px;
|
||||
}
|
||||
li {
|
||||
line-height: 22px;
|
||||
margin: 0 0 .5em 0;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
text-rendering: optimizelegibility;
|
||||
|
||||
color: #282B30;
|
||||
font-family:Calibri, "PT Sans", "Trebuchet MS", 'Helvetica Neue', Arial
|
||||
}
|
||||
.mfp-preloader {
|
||||
font-size: 13px;
|
||||
}
|
||||
img {
|
||||
border: 0;
|
||||
}
|
||||
h1 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.get-code-window {
|
||||
position: relative;
|
||||
background: #FFF;
|
||||
padding: 2em 3em;
|
||||
width: auto;
|
||||
margin: 20px auto;
|
||||
max-width: 600px;
|
||||
}
|
||||
#magnific_popup_documentation {
|
||||
font-size: 3em;
|
||||
margin-bottom: 1em;
|
||||
font-weight: bold;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
h2 {
|
||||
font-weight: bold;
|
||||
margin-top: 2em;
|
||||
margin-bottom: .3em;
|
||||
border-bottom: 1px solid #DDD;
|
||||
padding-bottom: 0.2em;
|
||||
font-size: 1.8em;
|
||||
}
|
||||
h3 {
|
||||
font-size: 22px;
|
||||
line-height: 24px;
|
||||
margin-bottom: 12px;
|
||||
margin-top: 20px;
|
||||
}
|
||||
h4 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
a {
|
||||
color: #3169B3;
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:hover {
|
||||
color: #C00;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
|
||||
|
||||
body {
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
|
||||
.grid-c h3 {
|
||||
margin-top: 0;
|
||||
}
|
||||
.grid-c {
|
||||
clear: both;
|
||||
}
|
||||
.grid-c p {
|
||||
margin-bottom: .5em;
|
||||
}
|
||||
.grid-c {
|
||||
overflow: hidden;
|
||||
margin: 0 -1em;
|
||||
}
|
||||
.gc3 {
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 50%;
|
||||
float: left;
|
||||
padding: 1em;
|
||||
overflow: hidden;
|
||||
}
|
||||
.grid-c .gc3:nth-of-type(2n+1) {
|
||||
clear: left;
|
||||
}
|
||||
|
||||
h1#magnific-popup-docs {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#logo {
|
||||
height: 150px;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
padding: 0 3em;
|
||||
margin-left: -3em;
|
||||
cursor: pointer;
|
||||
margin-top: 50px;
|
||||
margin-bottom: 50px;
|
||||
}
|
||||
#broken-glass {
|
||||
height: 100%;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
#logo:active h1 {
|
||||
top: 1px;
|
||||
}
|
||||
|
||||
#logo h1 {
|
||||
margin-top: 27px;
|
||||
font-size: 63px;
|
||||
line-height: 1.4;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
#logo h1 {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
width: 100%;
|
||||
color: #000;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
|
||||
h2.intro {
|
||||
font-size: 22px;
|
||||
line-height: 1.2;
|
||||
font-weight: normal;
|
||||
border: 0;
|
||||
margin-top: 0;
|
||||
}
|
||||
#header-links {
|
||||
font-size: 16px;
|
||||
}
|
||||
/*#header-links a {
|
||||
color: #A5CCFF;
|
||||
}
|
||||
#header-links a:hover {
|
||||
opacity: 0.8;
|
||||
}*/
|
||||
|
||||
|
||||
#markdown-toc {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 50px;
|
||||
padding: 20px 20px;
|
||||
background: rgba(255, 255, 255, 0.71);
|
||||
-webkit-backface-visibility:hidden;
|
||||
list-style: none;
|
||||
}
|
||||
#markdown-toc a[href="#magnific-popup-docs"] {
|
||||
display: none;
|
||||
}
|
||||
#markdown-toc ul {
|
||||
list-style: none;
|
||||
}
|
||||
#markdown-toc ul ul {
|
||||
display: none;
|
||||
}
|
||||
#markdown-toc:before {
|
||||
content: 'Table of contents';
|
||||
font-weight: bold;
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
@media all and (max-width: 75em) {
|
||||
#markdown-toc {
|
||||
position: static;
|
||||
padding: 0;
|
||||
background: none;
|
||||
}
|
||||
}
|
||||
#markdown-toc a {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dotted;
|
||||
}
|
||||
#markdown-toc ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#markdown-toc .active a{
|
||||
text-decoration: none;
|
||||
color: #666;
|
||||
}
|
||||
/*h2:target {
|
||||
font-weight: bold;
|
||||
margin-top: 0;
|
||||
border-top: 1.8em solid transparent;
|
||||
margin-bottom: .3em;
|
||||
border-bottom: 0;
|
||||
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding;
|
||||
background-clip: padding-box;
|
||||
background-color: #FFF6BF;
|
||||
padding-top: .2em;
|
||||
padding-left: .5em;
|
||||
}*/
|
||||
code,pre {
|
||||
font-family: Consolas, "Liberation Mono", Courier, monospace;
|
||||
}
|
||||
code {
|
||||
background: #F8F8F8;
|
||||
padding: .1em .4em;
|
||||
color: #c82829;
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
pre {
|
||||
background: none;
|
||||
line-height: 18px;
|
||||
overflow: auto;
|
||||
padding: 20px 25px;
|
||||
|
||||
border-radius: 2px;
|
||||
}
|
||||
pre code {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
background: none;
|
||||
color: #000;
|
||||
font-size: 13px;
|
||||
}
|
||||
.highlight {
|
||||
position: relative;
|
||||
margin-bottom: 0.5em;
|
||||
margin-left: -1.5em;
|
||||
width: 100%;
|
||||
padding: 0 1.5em;
|
||||
background-color: #F5FAFC;
|
||||
|
||||
}
|
||||
pre code:before {
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 3px;
|
||||
top: 6px;
|
||||
padding: 3px 7px 0;
|
||||
color: #889499;
|
||||
font-size: 12px;
|
||||
line-height: 13px;
|
||||
}
|
||||
|
||||
|
||||
code.html:before {
|
||||
content: 'HTML';
|
||||
}
|
||||
code.javascript:before {
|
||||
content: 'JS';
|
||||
}
|
||||
code.css:before {
|
||||
content: 'CSS';
|
||||
}
|
||||
|
||||
|
||||
#mc_embed_signup {
|
||||
max-width: 350px;
|
||||
padding: 32px;
|
||||
background: #EEE;
|
||||
}
|
||||
#mc_embed_signup input[type="email"] {
|
||||
border: 1px solid #CCC;
|
||||
border-top: 1px solid #999;
|
||||
padding: 5px;
|
||||
font-size: 18px;
|
||||
width: 200px;
|
||||
margin-right: 10px;
|
||||
height: 25px;
|
||||
transition: all 0.3s ease;
|
||||
-moz-transition: all 0.3s ease;
|
||||
-webkit-transition: all 0.3s ease;
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
}
|
||||
#mc_embed_signup input[type="email"]:focus {
|
||||
background-color: #FFF;
|
||||
border: 1px solid #3169B3;
|
||||
box-shadow: #3169B3 0px 0px 5px;
|
||||
-moz-box-shadow: #3169B3 0px 0px 5px;
|
||||
-webkit-box-shadow: #3169B3 0px 0px 5px;
|
||||
outline: none;
|
||||
}
|
||||
#mc_embed_signup input[type="submit"] {
|
||||
border: 1px solid #3169B3;
|
||||
font-size: 13px;
|
||||
font-weight: bold;
|
||||
color: #FFF;
|
||||
height: auto;
|
||||
padding: 8px 13px;
|
||||
cursor: pointer;
|
||||
background-color: #3169B3;
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
-webkit-appearance: none;
|
||||
border-radius: 2px;
|
||||
-moz-border-radius: 2px;
|
||||
-webkit-border-radius: 2px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.embed-form {
|
||||
position: relative;
|
||||
}
|
||||
#mc_embed_signup p {
|
||||
font-size: 15px;
|
||||
color: #4F4F4F;
|
||||
}
|
||||
|
||||
|
||||
|
||||
#main-wrapper {
|
||||
|
||||
background: none;
|
||||
max-width: 800px;
|
||||
width: 100%;
|
||||
margin: 2em auto 4em;
|
||||
padding: 3em;
|
||||
padding-top: 0;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
|
||||
.white-popup-block {
|
||||
background: #FFF;
|
||||
padding: 20px 30px;
|
||||
text-align: left;
|
||||
max-width: 650px;
|
||||
margin: 40px auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#examples:after {
|
||||
content: 'to view source click on the title of example';
|
||||
opacity: 0.4;
|
||||
font-weight: normal;
|
||||
font-size: 14px;
|
||||
margin-top: 13px;
|
||||
float: right;
|
||||
}
|
||||
.example {
|
||||
margin-bottom: 20px;
|
||||
position: relative;
|
||||
}
|
||||
.example h3 {
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
border-bottom: 1px dotted #949494;
|
||||
}
|
||||
.example h3:hover {
|
||||
color: #C00;
|
||||
}
|
||||
.example h3:hover:after {
|
||||
content: 'view source';
|
||||
padding-left: 8px;
|
||||
color: #999;
|
||||
position: absolute;
|
||||
top: 16px;
|
||||
font-family: Consolas, "Liberation Mono", Courier, monospace;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/*button.get-code-btn {
|
||||
cursor: pointer;
|
||||
background: transparent;
|
||||
border: 0;
|
||||
-webkit-appearance: none;
|
||||
display: block;
|
||||
z-index: 1;
|
||||
padding: 0;
|
||||
outline: none;
|
||||
background: red;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}*/
|
||||
|
||||
.square-tmb {
|
||||
margin: 0 10px 0 0;
|
||||
cursor: pointer;
|
||||
}
|
||||
.zoom-cursor {
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in;
|
||||
}
|
||||
.example a,
|
||||
a.popup-link {
|
||||
text-decoration: none;
|
||||
border-bottom: 1px dotted;
|
||||
}
|
||||
.example a:hover,
|
||||
a.popup-link:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.example a {
|
||||
line-height: 26px;
|
||||
}
|
||||
.example p a {
|
||||
text-decoration: underline;
|
||||
border: 0;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
#image-gallery a,
|
||||
#single-image {
|
||||
border-bottom: none;
|
||||
}
|
||||
.not-ready-yet-notice {
|
||||
padding: 20px 20px;
|
||||
background: #EEE;
|
||||
}
|
||||
|
||||
#footer {
|
||||
border-top: 1px solid #DDD;
|
||||
padding-top: 3em;
|
||||
margin: 5em 0 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
#conditional-lightbox-notice {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#logo-status {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.5s;
|
||||
-moz-transition: opacity 0.5s;
|
||||
transition: opacity 0.5s;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
}
|
||||
#logo-status.down {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.grid-of-images a {
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in;
|
||||
border-bottom: 0;
|
||||
height: 75px;
|
||||
display: block;
|
||||
float: left;
|
||||
margin: 0 5px 5px 0;
|
||||
width: 75px;
|
||||
}
|
||||
.grid-of-images a:hover {
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
h3 em {
|
||||
opacity: 0.3;
|
||||
}
|
||||
|
||||
code.def {
|
||||
padding: 0;
|
||||
background: #FFF;
|
||||
border: 0;
|
||||
display: block;
|
||||
margin-bottom: 8px;
|
||||
margin-top: -10px;
|
||||
color: #A3A3A3;
|
||||
}
|
||||
|
||||
@media all and (max-width: 50em) {
|
||||
#logo h1 {
|
||||
font-size: 52px;
|
||||
margin-top: 36px;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 30em) {
|
||||
#examples:after {
|
||||
display: none;
|
||||
}
|
||||
.gc3 {
|
||||
width: 100%;
|
||||
}
|
||||
.grid-c .gc3:nth-of-type(2n+1) {
|
||||
clear: none;
|
||||
}
|
||||
#main-wrapper {
|
||||
padding: 1em;
|
||||
margin-top: 0;
|
||||
}
|
||||
.highlight {
|
||||
padding: 0.2em 1em;
|
||||
margin: 1em -1em;
|
||||
}
|
||||
#logo {
|
||||
height: 95px;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
margin: 0 auto;
|
||||
margin-top: 0;
|
||||
margin-bottom: 2em;
|
||||
}
|
||||
#logo h1 {
|
||||
font-size: 32px;
|
||||
margin-top: 23px;
|
||||
}
|
||||
h2.intro {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media all and (max-width: 700px) {
|
||||
.zoom-cursor {
|
||||
cursor: pointer;
|
||||
}
|
||||
#conditional-lightbox-notice {
|
||||
display: block;
|
||||
padding: 10px;
|
||||
background: #FFEAEA;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
#logo-overlay {
|
||||
width: 100%;
|
||||
height: 75px;
|
||||
|
||||
}
|
||||
#logo-overlay {
|
||||
opacity: 1;
|
||||
background: red;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
opacity: 0;
|
||||
}
|
||||
#mfp-build-tool {
|
||||
background: #FFF;
|
||||
padding: 30px 40px 40px 40px;
|
||||
max-width: 500px;
|
||||
text-align: left;
|
||||
margin: 10px auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#mfp-build-tool h2 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0.7em;
|
||||
}
|
||||
#mfp-build-form label {
|
||||
display: block;
|
||||
margin-bottom: 5px;
|
||||
min-height: 18px;
|
||||
padding-left: 18px;
|
||||
}
|
||||
#mfp-build-form input[type="checkbox"] {
|
||||
margin: 3px 0;
|
||||
line-height: normal;
|
||||
cursor: pointer;
|
||||
width: auto;
|
||||
margin-right: 5px;
|
||||
float: left;
|
||||
margin-left: -18px;
|
||||
}
|
||||
#mfp-build-status {
|
||||
min-height: 40px;
|
||||
}
|
||||
#mfp-build-status .error {
|
||||
color: #830C0C;
|
||||
}
|
||||
#mfp-build-status .success {
|
||||
color: #014B04;
|
||||
}
|
||||
#mfp-build-status .progress {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
|
||||
#smashing {
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
}
|
||||
#smashing a {
|
||||
color: #EF4A35;
|
||||
}
|
||||
#smashing a:hover {
|
||||
color: #FF9369;
|
||||
}
|
||||
#smashing strong {
|
||||
color: #EF4A35;
|
||||
}
|
||||
.smashing-link {
|
||||
margin-left: 29px;
|
||||
position: relative;
|
||||
}
|
||||
.smashing-link:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
background: url("http://dimsemenov.com/images/sm-logo-24x24.png");
|
||||
position: absolute;
|
||||
top: -4px;
|
||||
left: -28px;
|
||||
}
|
||||
#hackernews {
|
||||
margin-left: 24px;
|
||||
}
|
||||
#hackernews:before {
|
||||
background: url("http://dimsemenov.com/images/hn-logo-18x18.gif");
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
top: -1px;
|
||||
left: -22px;
|
||||
}
|
||||
|
||||
|
||||
.share-buttons {
|
||||
text-align: center;
|
||||
}
|
||||
.share-buttons h2 {
|
||||
text-align: center;
|
||||
border: 0;
|
||||
|
||||
}
|
||||
.share-buttons {
|
||||
position: relative;
|
||||
margin: 70px 0;
|
||||
}
|
||||
.share-buttons a {
|
||||
-moz-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
display: inline-block;
|
||||
padding: 10px 20px;
|
||||
margin: 10px;
|
||||
color: #FFF;
|
||||
text-decoration: none;
|
||||
background: #5AAF63;
|
||||
font-size: 16px;
|
||||
line-height: 22px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.share-buttons a:hover {
|
||||
opacity: 0.7;
|
||||
}
|
||||
#tweet {
|
||||
background: #0096c4;
|
||||
}
|
||||
#like {
|
||||
background: #3b5998;
|
||||
}
|
||||
#gplus {
|
||||
background: #d34836;
|
||||
}
|
||||
#vkcom {
|
||||
background: #6e8fb1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
pre .comment,
|
||||
pre .template_comment,
|
||||
pre .diff .header,
|
||||
pre .javadoc {
|
||||
color: #998;
|
||||
font-style: italic
|
||||
}
|
||||
|
||||
pre .keyword,
|
||||
pre .css .rule .keyword,
|
||||
pre .winutils,
|
||||
pre .javascript .title,
|
||||
pre .nginx .title,
|
||||
pre .subst,
|
||||
pre .request,
|
||||
pre .status {
|
||||
color: #333;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
pre .number,
|
||||
pre .hexcolor,
|
||||
pre .ruby .constant {
|
||||
color: #099;
|
||||
}
|
||||
|
||||
pre .string,
|
||||
pre .tag .value,
|
||||
pre .phpdoc,
|
||||
pre .tex .formula {
|
||||
color: #D01040;
|
||||
}
|
||||
|
||||
pre .title,
|
||||
pre .id {
|
||||
color: #900;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
pre .javascript .title,
|
||||
pre .lisp .title,
|
||||
pre .clojure .title,
|
||||
pre .subst {
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
pre .class .title,
|
||||
pre .haskell .type,
|
||||
pre .vhdl .literal,
|
||||
pre .tex .command {
|
||||
color: #458;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
pre .tag,
|
||||
pre .tag .title,
|
||||
pre .rules .property,
|
||||
pre .django .tag .keyword {
|
||||
color: #000080;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
pre .attribute,
|
||||
pre .variable,
|
||||
pre .lisp .body {
|
||||
color: teal;
|
||||
}
|
||||
|
||||
pre .regexp {
|
||||
color: #009926
|
||||
}
|
||||
|
||||
pre .class {
|
||||
color: #458;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
pre .symbol,
|
||||
pre .ruby .symbol .string,
|
||||
pre .lisp .keyword,
|
||||
pre .tex .special,
|
||||
pre .prompt {
|
||||
|
||||
|
||||
}
|
||||
|
||||
pre .built_in,
|
||||
pre .lisp .title,
|
||||
pre .clojure .built_in {
|
||||
color: #0086b3
|
||||
}
|
||||
|
||||
pre .preprocessor,
|
||||
pre .pi,
|
||||
pre .doctype,
|
||||
pre .shebang,
|
||||
pre .cdata {
|
||||
color: #999;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
pre .deletion {
|
||||
background: #fdd
|
||||
}
|
||||
|
||||
pre .addition {
|
||||
background: #dfd
|
||||
}
|
||||
|
||||
pre .diff .change {
|
||||
background: #0086b3
|
||||
}
|
||||
|
||||
pre .chunk {
|
||||
color: #aaa
|
||||
}
|
||||
|
||||
#documentation-intro {
|
||||
background: #2b2b2b;
|
||||
text-align: center;
|
||||
padding: 3em;
|
||||
width: 100%;
|
||||
margin-left: -3em;
|
||||
margin-bottom: 3em;
|
||||
}
|
||||
#documentation-intro h1 {
|
||||
color: #FFF;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 44px;
|
||||
line-height: 1.1em;
|
||||
}
|
||||
#id1 {
|
||||
display: none;
|
||||
}
|
||||
#documentation-intro h1 a {
|
||||
text-decoration: none;
|
||||
color: #FFF;
|
||||
}
|
||||
#documentation-intro p a {
|
||||
font-size: 15px;
|
||||
color: #7CB5FF;
|
||||
}
|
||||
#documentation-intro a:hover {
|
||||
opacity: 0.75;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* Syntax highlighter */
|
||||
.hll{background-color:#ffc}.c{color:#998;font-style:italic}.err{color:#a61717;background-color:#e3d2d2}.k{color:#000;font-weight:bold}.o{color:#000;font-weight:bold}.cm{color:#998;font-style:italic}.cp{color:#999;font-weight:bold;font-style:italic}.c1{color:#998;font-style:italic}.cs{color:#999;font-weight:bold;font-style:italic}.gd{color:#000;background-color:#fdd}.ge{color:#000;font-style:italic}.gr{color:#a00}.gh{color:#999}.gi{color:#000;background-color:#dfd}.go{color:#888}.gp{color:#555}.gs{font-weight:bold}.gu{color:#aaa}.gt{color:#a00}.kc{color:#000;font-weight:bold}.kd{color:#000;font-weight:bold}.kn{color:#000;font-weight:bold}.kp{color:#000;font-weight:bold}.kr{color:#000;font-weight:bold}.kt{color:#458;font-weight:bold}.m{color:#099}.s{color:#d01040}.na{color:#008080}.nb{color:#0086b3}.nc{color:#458;font-weight:bold}.no{color:#008080}.nd{color:#3c5d5d;font-weight:bold}.ni{color:#800080}.ne{color:#900;font-weight:bold}.nf{color:#900;font-weight:bold}.nl{color:#900;font-weight:bold}.nn{color:#555}.nt{color:#000080}.nv{color:#008080}.ow{color:#000;font-weight:bold}.w{color:#bbb}.mf{color:#099}.mh{color:#099}.mi{color:#099}.mo{color:#099}.sb{color:#d01040}.sc{color:#d01040}.sd{color:#d01040}.s2{color:#d01040}.se{color:#d01040}.sh{color:#d01040}.si{color:#d01040}.sx{color:#d01040}.sr{color:#009926}.s1{color:#d01040}.ss{color:#990073}.bp{color:#999}.vc{color:#008080}.vg{color:#008080}.vi{color:#008080}.il{color:#099}
|
9597
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/jquery.js
vendored
Executable file
9597
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/jquery.js
vendored
Executable file
File diff suppressed because it is too large
Load Diff
4
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/jquery.min.js
vendored
Executable file
4
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/jquery.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
13
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/uglify.js
vendored
Executable file
13
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/uglify.js
vendored
Executable file
File diff suppressed because one or more lines are too long
1565
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/zepto.js
vendored
Executable file
1565
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/zepto.js
vendored
Executable file
File diff suppressed because it is too large
Load Diff
2
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/zepto.min.js
vendored
Executable file
2
api/jquery/plugins/magnific-popup/Magnific-Popup/website/third-party-libs/zepto.min.js
vendored
Executable file
File diff suppressed because one or more lines are too long
24
api/jquery/plugins/magnific-popup/Magnific-Popup/website/wordpress.html
Executable file
24
api/jquery/plugins/magnific-popup/Magnific-Popup/website/wordpress.html
Executable file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
|
||||
layout: default
|
||||
|
||||
title: Magnific WordPress Plugin
|
||||
|
||||
description: The complete guide on how to use Magnific Popup - the open source responsive lightbox plugin.
|
||||
|
||||
addjs: false
|
||||
|
||||
canonical_url: http://dimsemenov.com/plugins/magnific-popup/wordpress.html
|
||||
|
||||
buildtool: false
|
||||
|
||||
---
|
||||
|
||||
<style>
|
||||
#mc_embed_signup {
|
||||
display: block !important;
|
||||
max-width: 540px;
|
||||
background: none;
|
||||
}
|
||||
</style>
|
||||
{% include signup.html %}
|
Reference in New Issue
Block a user