我正在尝试在Jquery中创建以下内容,我想要做的是仅在视口比BconGER而不是.container div时才将格式应用于div。我写了以下内容,但我不确定我是否已正确完成,因为我的Jquery不是很好。
$(document).ready(function(){
$(window).width(); // returns width of browser viewport
$(document).width(); // returns width of HTML document
$(window).height(); // returns heightof browser viewport
$(document).height(); // returns height of HTML document
var width = $(window).width(); // the window width
var height = $(window).height(); // the window height
var containerwidth = $('.container').outerWidth(); // the container div width
var containerheight = $('.container').outerHeight(); // the container div height
if ((width >= containerwidth) && (height>=containerheight)){ //if the width and height of the window is bigger than the container run this function
$(document).ready(function(){
$(window).resize(function(){
$('.container').css({
position:'absolute',
left: ($(window).width()
- $('.container').outerWidth())/2,
top: ($(window).height()
- $('.container').outerHeight())/2
});
});
// To initially run the function:
$(window).resize();
});
}
});
EDIT >>
............................................... .....
我在这里创建了一个js小提琴,现在似乎正在运作。
答案 0 :(得分:1)
测试窗口尺寸和容器尺寸的方法很好。
但是说你对待你的事件有问题。
$(document).ready(function() {
//...
});
两次没有意义(顺便说一句,你在你的小提琴中解决了这个问题,这可能就是它起作用的原因)。
根据我的理解,您正在尝试: 1.页面加载时,如果窗口足够大,则应用某些css。 2.在后续页面调整大小时,执行相同的操作
所以我建议您隔离应用CSS的代码。这样你就可以多次使用它了:
var positionContent = function () {
var width = $(window).width(); // the window width
var height = $(window).height(); // the window height
var containerwidth = $('.container').outerWidth(); // the container div width
var containerheight = $('.container').outerHeight(); // the container div height
if ((width >= containerwidth) && (height>=containerheight)){
$('.container').css({position:'absolute',
left: ($(window).width() - $('.container').outerWidth())/2,
top: ($(window).height() - $('.container').outerHeight())/2 });
}
};
然后在需要时使用该功能:
//Call it when the window first loads
$(document).ready(positionContent);
//Call it whenever the window resizes.
$(window).bind('resize', positionContent);