[英]Increment negative value of property based on window size
我不知道这个问题的答案是简单还是困难。
情况是我在页面上有一个负边距的元素:
.element {
margin-left: -195px;
}
它在屏幕尺寸为1440x532的屏幕上效果很好(请与Chrome的inspector元素一起检查)。
我想要的是一种简单的解释。
每当窗口大一个像素时,我希望在元素的左边距增加一个像素(例如):
因此,如果窗口大小为1441,则元素的左边距为-194px。 如果窗口大小为1451,则元素的左边距为-184px。
同样,我希望它从1440px以上开始工作。
重要说明:我想要的是根据屏幕尺寸增加的左边距动态值,而不是一种媒体查询,它会使该值在屏幕尺寸间隔之间始终保持不变。 我想要的将迫使我添加大量的媒体查询。
javaScript或jQuery是否可能? (甚至CSS?)
对于CSS,这是不可能的,因为没有属性或方法可捕获窗口大小。 如果有的话,可以使用calc()
。
但是,使用JavaScript可以做到这一点。
function resizeScreen() {
var windowWidth = $(window).width();
var $element = $('.element');
if (windowWidth > 1440) {
// Calculate the new (negative) margin by subtracting the windows width by 1440 (e.g. 1500-1440 = 60). The new margin would be: -195 + 60 = -135.
var newMargin = $element.css('margin-left') + (windowWidth - 1440);
$('.element').css('margin-left', newMargin)
}
}
$(window).resize('resizeScreen');
是的,有可能使用带有resize()的 Jquery
$(window).resize(function() {
if (($(window).width() <= 1441)) {
$('.element').css('margin-left', "-194px")
}else if($(window).width() <= 1451){
$('.element').css('margin-left', "-184px")
}
});
但我建议您在CSS中使用媒体查询:
@media screen and (max-width: 1441px) {
.element {
margin-left: -194px;
}
}
@media screen and (max-width: 1451px) {
.element {
margin-left: -184px;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.