Javascript 将元素的高度设置为数字的倍数?
有没有办法通过jquery或javascript将元素的高度拉伸到一组特定的数字?我的意思是,当它容纳更多的内容时,它的高度只会遵循数字的模式(数字的倍数) 假设是100的倍数。。。一个div的高度,因为它延伸得更高,只会在这个系列中——200px,300px,400px,等等。因此,如果它超过200的1个像素,它会自动调整到300 这很难解释 我之所以需要这个,是因为我制作了一个垂直无缝的图案,边缘撕裂,如果它能完全显示每个瓷砖的话,看起来会非常完美 我只知道基本的jquery,对于如何解决这个问题我一点也不知道 我最真诚地感谢任何关心我问题的人 类似于:Javascript 将元素的高度设置为数字的倍数?,javascript,jquery,html,css,Javascript,Jquery,Html,Css,有没有办法通过jquery或javascript将元素的高度拉伸到一组特定的数字?我的意思是,当它容纳更多的内容时,它的高度只会遵循数字的模式(数字的倍数) 假设是100的倍数。。。一个div的高度,因为它延伸得更高,只会在这个系列中——200px,300px,400px,等等。因此,如果它超过200的1个像素,它会自动调整到300 这很难解释 我之所以需要这个,是因为我制作了一个垂直无缝的图案,边缘撕裂,如果它能完全显示每个瓷砖的话,看起来会非常完美 我只知道基本的jquery,对于如何解决这
$('element').css({ height : (0|(targetHeight + 99) / 100) * 100 });
如果您希望它是自动的:
$(function(){
var $elem = $('#element')
$elem.css({ height : (0|($(elem).height() + 99) / 100) * 100 });
});
此函数将获取当前高度和要捕捉到的单位数,四舍五入到最接近的倍数
function snapHeight(height, multipleOf) {
return multipleOf * Math.round(height / multipleOf);
}
示例:
snapHeight(930, 100); // returns 900
snapHeight(930, 50); // returns 950
$('#element').height(snapHeight($('#element').height(), 100)); // in jQuery
@cwolves什么是
0 | targetEight
做的?@Šime Vidas-Math.floor((targetEight+99)/100)
@cwolves0 | x
等于Math.floor(x)
?@Šime Vidas-是的,对于所有<2^31的数字
是一个位运算符,JS中的所有位运算都隐式转换为int(5 | 9)==13//true
非常有趣的东西。更好:$('div').height(函数(i,h){return Math.ceil(h/100)*100;})代码>
snapHeight(930, 100); // returns 900
snapHeight(930, 50); // returns 950
$('#element').height(snapHeight($('#element').height(), 100)); // in jQuery