javascript - 在 $(window).resize 上分隔 div

标签 javascript jquery css

我正在尝试在“.elements”div 内水平放置可变数量的“.wrapper”div。

.wrapper 是position: relativefloat: left

.elements 是 position: absolute

我用来分隔“.wrapper”div 的函数如下:

$(window).resize(function() { //on resize we...
    x = $('.elements').width(); //new width means new x
    y = Math.floor(x / pane); //new x means new y
    marginSize = (x - (pane * y)) / (2 * y); //set margineSize with new params
    $('.wrapper').css({
        'margin-left': marginSize,
        //change left margin on resize
    });
});

这应该使 .wrapper div 均匀分布。但只有在非常特殊的情况下,它们才会在 .elements 包装器 div 中均匀分布。大多数时候,它们似乎向左移动。

我有什么:

- 几个 div 彼此均匀分布 -divs 彼此接近一个像素(或更近?)

我想要的:

- 多个 div 彼此均匀分布以均匀地适合另一个 div -divs 之间保持最小 25px 的距离

这是一个working jsfiddle version我在说什么。调整输出大小以了解我的意思。

我希望我的解释是有道理的。如果需要任何澄清或补充,请告诉我。 (这是我的第一个问题...)

最佳答案

我将边距分成左右两部分,并将容器 (#holder) 居中,以确保容器之间的空间始终相等。

$(window).resize(function() {
    x=$('.elements').width();
    y=Math.floor(x/pane);
    marginSize=(x-(pane*y))/(2*y);
    $('#holder').css({width:(pane*y)+(marginSize*y)});
    $('.wrapper').css({
        'margin-right':marginSize/2,
        'margin-left':marginSize/2
    });
});


你会在这里找到我的解决方案:http://jsfiddle.net/axelmichel/jnmWE/ .
此外,我通过向容器添加边框来模拟 25px/50px 的最小空间。如果您有不同的背景而无法使用边框,则可以使用包含最小空间的嵌套 div。

关于javascript - 在 $(window).resize 上分隔 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13932680/

相关文章:

javascript - 智能组件和dumb组件之间的 React-Redux 数据流

javascript - 使用knockoutjs 在数组中的项目中创建计算值

javascript - 如何以模式加载 url 的内容并更改浏览器中的地址

jquery - jQuery UI 可排序小部件的 jQuery 事件处理不一致

javascript - 延迟 25/30 毫秒的 CSS3 animationStarted 事件触发

css - Bootstrap 4列指示另一列的高度

css - 自动高度 md 按钮

javascript - 将 Scrollmagic 添加到 Greensock 代码中

javascript - 如何防止连续点击元素?

javascript - 使用 JavaScript 的 dataTable 中的 Colspan