次のコードを使用しています。 div
id="popUpPane"
、div
をクリックすると、それはチャイルズがフェードイン。Safariで不透明度と可視性を持つjavascriptでトリガされた遷移
を再びdiv要素をクリックすると、ゆっくりと現れるとすべきだ、それはゆっくりとフェードアウトしてから消えるはずです。
FirefoxとChrome(ウェブキットも)はそのように動作し、以前のバージョンでSafariが実行したことがわかりました。しかし、SafariとSafari Mobileについては、「popUpPane
」をクリックすると何も起こりません。
これはSafariのバグですか?または意図した動作に戻るために変更できるものがありますか?
1つ追加:-webkit-transition
を-webkit-transition: opacity .5s ease-in-out;
に設定すると正常に動作しますが、移行は最初のクリックでのみ表示されます。最初のスクリプトの後にトランジションはありません... javaスクリプトでopacity
-partを削除すると、opo-upが機能しますが、トランジションはありません。
私のサイトの他のトランジションは全て動作しています。しかし、それらはすべてopacity
のみを使用し、visibility
は使用しません。
は、ここに私のコードです:
CSS:
#popUpPane {
white-space:normal;
position:fixed;
width:100%;
height:100%;
top:0;
left:0;
text-align:center;
vertical-align:middle;
visibility:hidden;
z-index:90;
}
#greyOut {
position:fixed;
width:100%;
height:100%;
top:0;
left:0;
background-color:#000;
opacity:0;
}
#popUpPicCanvas {
position:relative;
top:50%;
margin-top:-325px;
display:inline;
opacity:0;
z-index:100;
}
.fade {
-webkit-transition: all .5s ease-in-out;
-moz-transition: all .5s ease-in-out;
-o-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
}
HTML:
<div id="popUpPane" onClick="noPopUp()">
<div id="greyOut" class="fade"> </div>
<canvas id="popUpPicCanvas" width="1000" height="650" title="Bastian Beuttel" class="fade"></canvas>
</div>
Javascriptを:
var popUpPane = document.getElementById("popUpPane"),
greyOut = document.getElementById("greyOut"),
popUpPicCanvas = document.getElementById("popUpPicCanvas"),
popCanvasContext = popUpPicCanvas.getContext("2d");
var doPopUp = function(source,x,y){
var popUpPic = document.getElementById("pic"+source);
popCanvasContext.canvas.width = x;
popCanvasContext.canvas.height = y;
popCanvasContext.drawImage(popUpPic, 0, 0,x,y);
popUpPane.style.visibility = "visible";
greyOut.style.opacity = "0.7";
popUpPicCanvas.style.opacity = "1";
};
var noPopUp = function(){
greyOut.style.opacity = "0";
popUpPicCanvas.style.opacity = "0";
popUpPane.style.visibility = "hidden";
};
私は、誰かが私を助けることができると思います。
あなたのお返事ありがとうございます!