2013-10-28 48 views
1

如何更改这一个,从显示内容从div,加载.php文件(file.php?id = 1)什么是最好的方法做到这一点,通过iframe或ajax?jQuery弹出,将其更改为加载框架或AJAX页面

我想在弹出窗口中制作多个页面,而不是每次加载整个页面。

Demo.html

<!DOCTYPE html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Reveal Demo</title> 

     <!-- Attach our CSS --> 
     <link rel="stylesheet" href="reveal.css"> 

     <!-- Attach necessary scripts --> 
     <!-- <script type="text/javascript" src="jquery-1.4.4.min.js"></script> --> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-2.0.3.min.js"></script> 
     <script type="text/javascript" src="jquery.reveal.js"></script> 

     <style type="text/css"> 
      body { font-family: "HelveticaNeue","Helvetica-Neue", "Helvetica", "Arial", sans-serif; } 
      .big-link { display:block; margin-top: 100px; text-align: center; font-size: 70px; color: #06f; } 
     </style> 

    </head> 
    <body> 

     <a href="#" class="big-link" data-reveal-id="1"> 
      Fade and Pop 
     </a>  

     <a href="#" class="big-link" data-reveal-id="2" data-animation="fade"> 
      Fade 
     </a> 

     <a href="#" class="big-link" data-reveal-id="3" data-animation="none"> 
      None 
     </a> 

     <div id="2" class="reveal-modal"> 
      <h1>2</h1> 
      <p>This is a default modal in all its glory, but any of the styles here can easily be changed in the CSS.</p> 
      <a class="close-reveal-modal">&#215;</a> 
     </div> 

      <div id="3" class="reveal-modal"> 
       <h1>3</h1> 
       <p>This is a default modal in all its glory, but any of the styles here can easily be changed in the CSS.</p> 
       <a class="close-reveal-modal">&#215;</a> 
      </div> 
     <div id="1" class="reveal-modal"> 
      <h1>1</h1> 
      <p>This is a default modal in all its glory, but any of the styles here can easily be changed in the CSS.</p> 
      <a class="close-reveal-modal">&#215;</a> 
     </div> 

    </body> 
</html> 

jquery.reveal.js

(function($) { 

/*--------------------------- 
Defaults for Reveal 
----------------------------*/ 

/*--------------------------- 
Listener for data-reveal-id attributes 
----------------------------*/ 


    $(document).on("click", "a[data-reveal-id]", function(ev) { 
     ev.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); 

reveal.css

/* -------------------------------------------------- 
Reveal Modals 
-------------------------------------------------- */ 

.reveal-modal-bg { 
    position: fixed; 
    height: 100%; 
    width: 100%; 
    background: #000; 
    background: rgba(0,0,0,.8); 
    z-index: 100; 
    display: none; 
    top: 0; 
    left: 0; 
    } 

.reveal-modal { 
    visibility: hidden; 
    top: 100px; 
    left: 50%; 
    margin-left: -300px; 
    width: 520px; 
    background: #eee url(modal-gloss.png) no-repeat -200px -80px; 
    position: absolute; 
    z-index: 101; 
    padding: 30px 40px 34px; 
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px; 
    border-radius: 5px; 
    -moz-box-shadow: 0 0 10px rgba(0,0,0,.4); 
    -webkit-box-shadow: 0 0 10px rgba(0,0,0,.4); 
    -box-shadow: 0 0 10px rgba(0,0,0,.4); 
    } 

.reveal-modal.small   { width: 200px; margin-left: -140px;} 
.reveal-modal.medium  { width: 400px; margin-left: -240px;} 
.reveal-modal.large   { width: 600px; margin-left: -340px;} 
.reveal-modal.xlarge  { width: 800px; margin-left: -440px;} 

.reveal-modal .close-reveal-modal { 
    font-size: 22px; 
    line-height: .5; 
    position: absolute; 
    top: 8px; 
    right: 11px; 
    color: #aaa; 
    text-shadow: 0 -1px 1px rbga(0,0,0,.6); 
    font-weight: bold; 
    cursor: pointer; 
    } 
/* 

NOTES 

Close button entity is &#215; 

Example markup 

<div id="myModal" class="reveal-modal"> 
    <h2>Awesome. I have it.</h2> 
    <p class="lead">Your couch. I it's mine.</p> 
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. In ultrices aliquet placerat. Duis pulvinar orci et nisi euismod vitae tempus lorem consectetur. Duis at magna quis turpis mattis venenatis eget id diam. </p> 
    <a class="close-reveal-modal">&#215;</a> 
</div> 

*/ 

回答

0

您可以使用jQuery负荷函数加载内容的容器。请参阅http://api.jquery.com/load/

+0

我已经尝试过,但我不知道如何使代码。我仍然是新的jQuery。 – Chak

+0

jquery load允许您将Web请求中的内容加载到容器中。例如,您可以使用id =“container”来定义一个div,并使用jquery load通过以下脚本加载数据:$('div#container')。load('your data url');. –

+0

你能举个例子吗? – Chak

1

您可以使用ajax而不是iframe来更好地加载内容,而无需刷新整个页面。 Iframe可能导致跨浏览器脚本并可能显示加载问题。

+0

但是我在运行Ajax后无法运行一些jQuery代码? – Chak

+0

运行Ajax后,在成功响应中,您可以执行任何jQuery代码。不应该有任何问题。 – prava