2013-10-28 47 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