まず第一に、私はjavascriptの専門家ではありません。特定のJavaScriptを条件付きで実行する方法を理解しようと夢中になっています。私はJQueryを使用して、ブロックをブラウザーページの中央に配置していますが、画面サイズが480pxより大きい場合に限ります(つまり、このスクリプトをスマートフォンで実行したくない場合)。CSSメディアクエリを使用してリクエストを示しています。つまり、このスクリプトはすべてのスマートフォン、Safari 5以降、IE10、Firefox 13で正常に機能しますが、IE6-9およびOpera 12では機能しません(私が理解している限り、これらはトランジションをサポートしていません)。誰かが私が間違っていることを理解するのを手伝ってくれますか?そして、これを行うためのより良い方法がある場合はどうなりますか?(CSSで@mediaクエリを試しましたが、スクリプトは何があっても実行され続けます)...本当に助けていただければ幸いです。
<script>
if (matchMedia('only screen and (max-device-width:800px) and ' + '(orientation: portrait)').matches) {
// smartphone/iphone... maybe run some small-screen related dom scripting?
event.preventDefault();
} else{
//Absolute Content Center
function CenterItem(theItem){
var winWidth=$(window).width();
var winHeight=$(window).height();
var windowCenter=winWidth/2;
var itemCenter=$(theItem).width()/2;
var theCenter=windowCenter-itemCenter;
var windowMiddle=winHeight/2;
var itemMiddle=$(theItem).height()/2;
var theMiddle=windowMiddle-itemMiddle;
if(winWidth>$(theItem).width()){ //horizontal
$(theItem).css('left',theCenter);
} else {
$(theItem).css('left','0');
}
if(winHeight>$(theItem).height()){ //vertical
$(theItem).css('top',theMiddle);
} else {
$(theItem).css('top','0');
}
}
$(document).ready(function() {
CenterItem('.content');
});
$(window).resize(function() {
CenterItem('.content');
});
} //end of "else" (normal execution)
</script>