2012-02-25 9 views
1

擬似ポップアップの背景に問題があります。私はjQuery(1.7)とthis tutorialを使って自分のウェブサイトにポップアップを作成します。基本的に私は、表示されていない2つのフォーマット済みのdiv(ページの残りの部分を非表示にする半透明でもう1つは背景としての画像 - 実際のポップアップを含むCSSは既にページに読み込まれている)私は、ポップアップを表示するためにそれらが必要なときを示し、第2のdivの追加の塗りつぶし(別のポップアップを持つ)を表示します。カスタマイズされた擬似ポップアップで背景が表示されない

私の問題は、ポップアップの背景が読み込まれず、半透明の背景とポップアップの内容だけで終わることです。ただし、コンソールでCSSバックグラウンドプロパティを無効または有効にすると、最初にバックグラウンドが表示されるはずです。

この問題は、実際には実際のポップアップ関数を修正した後では比較的現れていないため、どこから来たのか分かりません。ページがロードされたときにすでに存在しているため、まだロードされていない背景イメージの問題にはなりません。コードの

関連作品:

HTML:

<div id='popup_container'></div> 
<div id='backgroundPopup'></div> 

CSS:

#backgroundPopup{ 
    display:none; 
    position: fixed; 
    _position:absolute; /* hack for internet explorer 6*/ 
    height: 100%; 
    width: 100%; 
    top: 0; 
    left: 0; 
    background: #000000; 
    border: 1px solid #cecece; 
    z-index: 1; 
} 

#popup_container{ 
    display: none; 
    position: fixed; 
    _position:absolute; /* hack for internet explorer 6*/ 
    height: 526px; 
    width: 718px; 
    background: url(http://cdn.mojogroups.com/Layout/popup.png) no-repeat !important; 
    z-index: 2; 
    color: #000000; 
} 

Javascriptを:

//When initializing the page 
$(document).ready(function(){ 

//[...] 

popup = new Popup(); 
popup.initialize(); 

} 

function Popup(){ 
var popupStatus = 0; 



function togglePopup(){ 
    if(popupStatus == 0){ 
     centerPopup(); 
     loadPopup(); 
    } 
    else 
     disablePopup(); 
} 

function loadPopup(){ 
    if(popupStatus == 0){ 
     $('#backgroundPopup').css({ 
      "opacity": "0.7" 
     }); 
     $('#backgroundPopup').fadeIn("fast"); 
     $('#popup_container').fadeIn("fast"); 
     $('body').scrollTop(0); 
     $('body').css('overflow', 'hidden'); 
     popupStatus = 1; 
    } 
} 

this.disablePopup = function(){ 
    if(popupStatus == 1){ 
     $('#backgroundPopup').fadeOut("fast"); 
     $('#popup_container').fadeOut("fast"); 
     $('#popup_container').empty(); 
     $('body').css('overflow', 'auto'); 
     popupStatus = 0; 
    } 
} 

function centerPopup(){ 
    var windowWidth = document.documentElement.clientWidth; 
    var windowHeight = document.documentElement.clientHeight; 
    var popupHeight = $('#popup_container').height(); 
    var popupWidth = $('#popup_container').width(); 


    $('#popup_container').css({ 
     "position": "absolute", 
     "top": windowHeight/2 - popupHeight/2, 
     "left": windowWidth/2 - popupWidth/2 
    }); 

    $('#backgroundPopup').css({ 
     "height": windowHeight 
    }); 
} 

this.initialize = function(){ 
    $('#backgroundPopup').click(function(){ 
     popup.disablePopup(); 
    }); 

    $(document).keypress(function(e){ 
     if(e.keyCode==27) 
      popup.disablePopup(); 
    }); 
} 

this.contacts = function(){ 
    //Fill the popup container... 
     centerPopup(); 
    loadPopup(); 
    popupDiv.fadeIn('fast'); 
} 

それは何だろうか?

ご協力いただきありがとうございます。

EDIT:サイト(初期バージョン)がhere

UPDATEを見つけることができます:いくつかの時点で私はそれがloadPopup()関数で追加された不透明度属性によるものだと思ったので、私は、コードの一部を削除;しかし、バグはまだ表示されています(それほど頻繁ではありませんが、最初は一時的だったので確信が持てません)。

+0

実際にあなたのコードや問題が発生しているページを見るとよいでしょう。実際にコードを見ずに問題が何であるかを知ることは難しいです。 – jeremysawesome

+0

jsfiddle.netの作業コードは非常に役立ちます。また、これはすべてのブラウザ、または特定のブラウザだけですか? – RussellUresti

+0

あなたの答えをありがとう。それはクロム(最新版)にしかないようです。私は建設中のウェブサイトへのリンクを追加しました。 – axelcdv

答えて

0

私はそれが答えの質問としてではなく、私は私がここで尋ねるコメントに画像を追加することはできません知っている。私はちょうどあなたの問題を克服しました、私はあなたが以下のスクリーンショットを見ることができます。正しい出力かどうか。 enter image description here

+0

それはここに置かれている場合はおそらく "centerpopup"を実行していないかもしれませんが、多かれ少なかれです。 – axelcdv

関連する問題