123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- (function($) {
-
- $('a[data-reveal-id]').live('click', function(e) {
- e.preventDefault();
- var modalLocation = $(this).attr('data-reveal-id');
- $('#'+modalLocation).reveal($(this).data());
- });
- $.fn.reveal = function(options) {
-
-
- var defaults = {
- animation: 'fadeAndPop',
- animationspeed: 300,
- closeonbackgroundclick: true,
- dismissmodalclass: 'close-reveal-modal'
- };
-
-
- var options = $.extend({}, defaults, options);
-
- return this.each(function() {
-
- var modal = $(this),
- topMeasure = parseInt(modal.css('top')),
- topOffset = modal.height() + topMeasure,
- locked = false,
- modalBG = $('.reveal-modal-bg');
- if(modalBG.length == 0) {
- modalBG = $('<div class="reveal-modal-bg" />').insertAfter(modal);
- }
-
-
- 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');
- });
-
- 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');
- });
-
-
- modal.trigger('reveal:open')
-
-
- 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'); }
- });
-
-
- function unlockModal() {
- locked = false;
- }
- function lockModal() {
- locked = true;
- }
-
- });
- }
- })(jQuery);
-
|