123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- (function($) {
- /*---------------------------
- Defaults for Reveal
- ----------------------------*/
-
- /*---------------------------
- Listener for data-reveal-id attributes
- ----------------------------*/
- $('a[data-reveal-id]').live('click', function(e) {
- e.preventDefault();
- var modalLocation = $(this).attr('data-reveal-id');
- $('#'+modalLocation).reveal($(this).data());
- });
- /*---------------------------
- Extend and Execute
- ----------------------------*/
- $.fn.reveal = function(options) {
-
-
- var defaults = {
- animation: 'fadeAndPop', //fade, fadeAndPop, none
- animationspeed: 300, //how fast animtions are
- closeonbackgroundclick: true, //if you click background will modal close?
- dismissmodalclass: 'close-reveal-modal' //the class of a button or element that will close an open modal
- };
-
- //Extend dem' options
- var options = $.extend({}, defaults, options);
-
- return this.each(function() {
-
- /*---------------------------
- Global Variables
- ----------------------------*/
- var modal = $(this),
- topMeasure = parseInt(modal.css('top')),
- topOffset = modal.height() + topMeasure,
- locked = false,
- modalBG = $('.reveal-modal-bg');
- /*---------------------------
- Create Modal BG
- ----------------------------*/
- if(modalBG.length == 0) {
- modalBG = $('<div class="reveal-modal-bg" />').insertAfter(modal);
- }
-
- /*---------------------------
- Open & Close Animations
- ----------------------------*/
- //Entrance Animations
- modal.bind('reveal:open', function () {
- modalBG.unbind('click.modalEvent');
- $('.' + options.dismissmodalclass).unbind('click.modalEvent');
- if(!locked) {
- lockModal();
- if(options.animation == "fadeAndPop") {
- modal.css({'top': $(document).scrollTop()-topOffset, 'opacity' : 0, 'visibility' : 'visible'});
- modalBG.fadeIn(options.animationspeed/2);
- modal.delay(options.animationspeed/2).animate({
- "top": $(document).scrollTop()+topMeasure + 'px',
- "opacity" : 1
- }, options.animationspeed,unlockModal());
- }
- if(options.animation == "fade") {
- modal.css({'opacity' : 0, 'visibility' : 'visible', 'top': $(document).scrollTop()+topMeasure});
- modalBG.fadeIn(options.animationspeed/2);
- modal.delay(options.animationspeed/2).animate({
- "opacity" : 1
- }, options.animationspeed,unlockModal());
- }
- if(options.animation == "none") {
- modal.css({'visibility' : 'visible', 'top':$(document).scrollTop()+topMeasure});
- modalBG.css({"display":"block"});
- unlockModal()
- }
- }
- modal.unbind('reveal:open');
- });
- //Closing Animation
- modal.bind('reveal:close', function () {
- if(!locked) {
- lockModal();
- if(options.animation == "fadeAndPop") {
- modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
- modal.animate({
- "top": $(document).scrollTop()-topOffset + 'px',
- "opacity" : 0
- }, options.animationspeed/2, function() {
- modal.css({'top':topMeasure, 'opacity' : 1, 'visibility' : 'hidden'});
- unlockModal();
- });
- }
- if(options.animation == "fade") {
- modalBG.delay(options.animationspeed).fadeOut(options.animationspeed);
- modal.animate({
- "opacity" : 0
- }, options.animationspeed, function() {
- modal.css({'opacity' : 1, 'visibility' : 'hidden', 'top' : topMeasure});
- unlockModal();
- });
- }
- if(options.animation == "none") {
- modal.css({'visibility' : 'hidden', 'top' : topMeasure});
- modalBG.css({'display' : 'none'});
- }
- }
- modal.unbind('reveal:close');
- });
-
- /*---------------------------
- Open and add Closing Listeners
- ----------------------------*/
- //Open Modal Immediately
- modal.trigger('reveal:open')
-
- //Close Modal Listeners
- var closeButton = $('.' + options.dismissmodalclass).bind('click.modalEvent', function () {
- modal.trigger('reveal:close')
- });
-
- if(options.closeonbackgroundclick) {
- modalBG.css({"cursor":"pointer"})
- modalBG.bind('click.modalEvent', function () {
- modal.trigger('reveal:close')
- });
- }
- $('body').keyup(function(e) {
- if(e.which===27){ modal.trigger('reveal:close'); } // 27 is the keycode for the Escape key
- });
-
-
- /*---------------------------
- Animations Locks
- ----------------------------*/
- function unlockModal() {
- locked = false;
- }
- function lockModal() {
- locked = true;
- }
-
- });//each call
- }//orbit plugin call
- })(jQuery);
-
|