javascript - 隐藏 div 框并删除空间

标签 javascript jquery css

我有一个导航,您可以通过它来过滤 div 框:

<ul>
   <li><a href="javascript:void(0);" data-target="apples">Appels</a></li>
   <li><a href="javascript:void(0);" data-target="bananas">Bananas</a></li>
   <li><a href="javascript:void(0);" data-target="pineapples">Pineapples</a></li>
</ul>

<div class="fruits bananas apples pineapples"></div>  
<div class="fruits bananas"></div>
<div class="fruits pineapples apples"></div>

我的目标:当你点击一个水果时,那些在它们的类中不包含水果的 div 框会隐藏 - 但是:它们不仅会隐藏,还会为即将到来的 div 框提供空间。这是我到目前为止提出的 jQuery 函数:

    jQuery(document).ready(function() {

        jQuery('a[data-target]').click(function() {
              jQuery('.fruits').show().not('.' + this.dataset.target).hide();
        });

    });

我还有两个问题:

  • 在前端我有五行,每行包含三个 div.fruits 框。每个 div 的宽度为 33%。上面的函数实现了隐藏不需要的 div 框,但是如果例如唯一被隐藏的框是第 1 行的最后一个框,那么第 2 行的第一个框不会自动向上移动到隐藏的位置盒子是 - 相反,隐藏的盒子留下了空白。

  • 我的第二个要求:假设您点击了 apple 链接以过滤所有“apples”框 - 如果之后您决定点击“pineapples”链接而不是所有可能的 div 框apple-click 后已被隐藏,需要考虑新的过滤器查询。

对于您的代码建议,我将不胜感激!

我的 fiddle 来了:http://jsfiddle.net/Karicula/LXmjp/#&togetherjs=UImBqeN3DU 点击“苹果”查看我的问题...

最佳答案

你的问题依赖于这种风格

.fruits:nth-child(3n) {
    margin-right:0;
}

删除它并将您的 .fruitsmargin-right 属性更改为 0.3%

关于javascript - 隐藏 div 框并删除空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22878900/

相关文章:

javascript - 如何在新窗口中打开页面,而不是在同一窗口中及其新选项卡上打开页面?

javascript - 将绝对元素重新定位到右侧

javascript - 使代码更干净的选项

javascript - 图像加载事件 - 来自用户定义的 url/输入的自定义图像 - load() 不起作用

javascript - 使用 Javascript 在 iPad 上强制 CSS 过渡

javascript - Phonegap iOS 推送通知示例

javascript - 有没有办法向 jquery 的 $.ajax 函数添加额外的行为

javascript - 如果元素有 className1 classFromArray 前置 classFromArray

html - LESS li 类不工作

javascript - 如何在 jquery 和 ajax 中的 window.location.href 之后显示/显示 div