jquery - 以间隔展开div高度

标签 jquery css height

我正在使用一个以图案图像作为背景的 div。该图案是可重复的,但最好以像素间隔扩展。

我想知道是否有一种解决方案可以扩展具有固定间隔的 div,但仍会随着文本填充 div 而扩展。

假设以 10px 的间隔查看图案效果最佳,例如。高度:120px、130px、140px 等 div 存在动态内容,并且随着 div 的高度扩展,高度固定为间隔内的下一个可能高度。 例如。 div的原始高度为132px,应自动转换为140px。

这可能吗?我已经添加了 jquery 标签,因为我认为单独使用 CSS 是不可能的,而 javascript/jquery 是我对解决方案的猜测:)

解决方案:

我结合了两个现有答案的解决方案:

$(function(){
    var DivSize = function(el) {
        $(el).css('height',Math.ceil( $(el).height() / 10 ) * 10+'px');
    }
    DivSize("#test");
});

这似乎可以完成工作!

最佳答案

现有解决方案的问题在于,它们没有考虑到您在 div 上设置静态高度,无论内容是什么,该高度都不会改变。所以你需要一个元素来告诉你想要的内容高度,然后包装元素持有背景并根据内部内容的高度变化展开。

这个 jsFiddle 示例应该不言而喻,间隔当然是用于测试/演示的,就像 css 一样。 http://jsfiddle.net/sg3s/uHsVg/

示例JS:

setInterval(function() {
    var $inner = $('#innerContent'),
        $outer = $('#outerDiv');

    // Change the contents.... 
    $inner.text($inner.text() + ' lorem ipsum dolor sit amet');

    // Height changed over treshhold? treshhold = outerheight
    if ($outer.height() <= $inner.height()) {
        $outer.height(Math.ceil($inner.height() / 10) * 10);
    }

}, 250);

示例 HTML:

<div id="outerDiv">
    <div id="innerContent">Test</div>
</div>

这个扩展的 div 不需要是绝对的或任何东西,它会像任何设置了静态高度的普通 html block 元素一样。

编辑:为了使它缩小,只需删除 treshhold if 语句,我只是把它放在那里,这样它只会在真正的变化上设置高度,而不仅仅是任何 改变...

关于jquery - 以间隔展开div高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7812821/

相关文章:

jquery - iframe动态高度跨域使用jquery.ba-postmessage

html - 固定的 100% 高度 div 导致窗口增长

php - 评论系统 jQuery/ajax php mysql

javascript - 如何通过拖放上传多个文件并使用ajax浏览

css - 将鼠标悬停在不透明的图像上时显示文本

css - 有没有办法让 translate3d 在悬停时始终出现流畅的动画?

javascript - JQuery JsTree : jstree is not rendering properly in browser

jQuery 验证插件自定义方法。多个参数

javascript - 我需要能够按下一个按钮来推特报价

c# - WPF 从底部到顶部调整窗口大小