javascript - 如果 div 高度为奇数,则将其舍入到最接近的偶数

标签 javascript jquery html math

基本上我想使用transformY,但是子像素模糊非常烦人,并且仅在div的高度为奇数时才会发生。由于高度取决于文本视口(viewport)等,因此需要灵活,因此实际上需要它来获取 div 的高度 - 将其除以 2,四舍五入到最接近的数字,然后 x 2,这样它总是会产生偶数值。

最佳答案

这个问题很老了,但这是谷歌上关于“将 div 高度舍入为偶数”的第一个答案,因此可能对其他人有帮助。

您已经完全确定了问题:由于结果未舍入到最接近的像素,翻译可能会导致模糊,因此将 div 高度舍入到偶数可以修复此问题。

我们无法在 CSS 中执行此操作,因为它还不知道其最终高度,因此我们必须在渲染后执行此操作。 使用 Jquery 轻而易举:

$(window).on("load", function() {
    $('div').each(function (index, value) {
        if($(this).height()%2==1) $(this).height( 2*Math.round($(this).height()/2 ) ) ;
    });
});

(当然,在 VanillaJS 中也可以做同样的事情,只是多几行)

说明

  • $(window).on("load")事件在这里很重要,因为最终高度将在最终渲染后得知,包括图像尺寸,在加载 DOM 时仍然未知
  • height %2 ==1使用取模运算符检查除以 2 时是否有余数 -> 奇数

  • 然后,正如您所说,使用 2*(round(height/2)) 将其四舍五入到最接近的(上部)偶数像素。

jsFiddle演示模糊和修复

关于javascript - 如果 div 高度为奇数,则将其舍入到最接近的偶数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29098087/

相关文章:

javascript - 隐藏jquery和javascript

javascript - 可以从内存中创建一个 AudioBuffer,即一个 Int8Array

javascript - 壁纸上的可拖动 Sprite

html - Firefox 报告 "No Video with Supported Format and Mime Type Found"

javascript - Jquery/Javascript 从具有最高属性值的数组中删除条目

javascript - data-dismiss ="modal"关闭 MVC 局部 View 中同一页面上所有打开的模态对话框

javascript - 如何使用 jQuery 获取下拉列表中带有 attr "selected"的选项数量?

jquery - 大图像背景的断断续续的动画

html - 如何使用 em 而不是 px 更改 <h1> 到 <h6> 以具有与 <p> 相同的填充,同时保持它们完全相同?

jquery - 无法访问正确的 Jquery 选择器以在鼠标悬停时更改 CSS