【问题标题】:Div Expandsion on Click单击时的 Div 扩展
【发布时间】:2014-04-17 21:56:23
【问题描述】:

我想知道是否有人可以给我一些关于用于 div 扩展的 javascript/jquery 的见解。在 JSFiddle 你会发现:

  • 四个黑色 div:

    .first_box {
    width: 142px;
    height: 142px;
    margin-left: 0px;
    margin-top: 0px;
    position: absolute;
    display: table;
    background-color: black;
    }
    
  • 每个 div 的独特悬停颜色:

    .first_box:hover {
    width: 142px;
    height: 142px;
    margin-left: 0px;
    margin-top: 0px;
    position: absolute;
    display: table;
    background-color: green;
    }
    

所以我的问题是:

我可以使用什么来在单击 div 时将其扩展为四个 div 的大小 (289 X 289)?

然后,展开后的 div 将填充独特的内容。

谢谢!

JSFiddle:http://jsfiddle.net/SXfeG/1/

【问题讨论】:

  • 您想在单击其他 3 个 div 时隐藏其中一个吗?

标签: javascript jquery html css-transitions


【解决方案1】:

如果你使用绝对定位,你可以添加一些这样的 CSS:

.div-clicked {
    width: 289px !important ;
    height: 289px !important ;
    margin-top: 0 !important ;
    margin-left: 0 !important ;
    z-index: 400 ;
}

div {
    transition: all 1s ; // To add transition effect
}

然后,使用 jQuery,您可以简单地使用以下命令切换“点击”类:

$('div').on('click', function (e) { $(this).toggleClass('clicked') ; })

JSFiddle : http://jsfiddle.net/85QFN/

【讨论】:

  • 太棒了!!这次真是万分感谢。有没有办法在其他 div 之上进行缩回? (不在他们后面)
  • @user3087325 在 Chrome v34 上,当收回时 div 仍然在上方。看起来有些浏览器不支持z-index属性上的过渡效果...我认为唯一的处理方法是使用JS超时手动处理过渡...见jsfiddle.net/eD56Y也许有更好的这样做的方法...
  • 在 Firefox 上看起来非常流畅,谢谢。展开时可以在每个框中放置不同的内容吗?可能会隐藏/显示为此工作吗?
  • @user3087325 是的,每个div放2个div,一个默认display: none ,点击时用hide/show或fadeIn/fadeOut切换。
  • 当我将它导入我的网页时,包含方形 div 的 div 是最终收到点击功能的那个。有没有办法更改 javascript,使其不是第一行中的“div”?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
相关资源
最近更新 更多