首先,我不是 javascript 专家。我正在疯狂地试图弄清楚如何有条件地执行某个 javascript。我正在使用 JQuery 将我的块绝对居中在浏览器页面中,但前提是屏幕尺寸大于 480 像素(换句话说,我不希望此脚本在智能手机上运行)。我正在使用 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>