【问题标题】:CSS and/or Javascript transitions for div movement when classes added or removed添加或删除类时用于 div 移动的 CSS 和/或 Javascript 转换
【发布时间】:2013-12-09 20:59:59
【问题描述】:

为我的项目寻找一些可能的想法。

我有一个动态加载内容的容器 div。如果我希望内容居中,我会在容器 div (.center-content) 和包含的 div (#container .center-content) 上放置类。如果我不希望它们居中,我使用 removeClass() 删除类。那里没问题。

以下是我需要帮助的内容:例如,当我删除 .centered 类时,div 当然会相当突然地移动到它们的新位置。我希望他们更性感地漫步。

是否有我可以应用的 css 过渡策略,如果添加或删除的类导致 div 重新定位,我可以为其运动设置动画(即慢或快)?

我之前使用过显式 css 动画作为效果,但这似乎有点不同,我不知道什么是可能的,什么是不可能的。

谢谢,

乔尔
这是一个 jsfiddle 作为示例。 http://jsfiddle.net/zdbbf/1/

我想要的是当移除居中时过渡更平滑。

HTML:

<div id="mycontainer" class='centered'>
    <div id="mycontent" class='centered'>
        <span>I'm a centered div</span>
    </div>
    <button id="mybutton">click to remove centering</button>
</div>

CSS:

#mycontainer {
    height: 400px;
    width: 400px;
     border: 1px solid grey;
    background-color: grey;
}

#mycontent {
    height: 100px;
    width: 100px;
    border: 1px solid blue;
    text-align: left;
}

.centered {
    display: block;
    text-align: center;
    margin: 0 auto;
}

#container .centered {
    display: inline-block;
    float: none;
    vertical-align: middle;
}

JS:

$("#mybutton").on("click",function() {
    $("#mycontent").removeClass("centered");
});

【问题讨论】:

  • 您可以使用 jQuery 转换类,但您的问题不适合 SO,因为它是这样写的。
  • -isherwood,我可以添加哪些信息来改进问题? -codehorse,我真的只是在寻找一种方法来软化现在对用户来说有点刺耳的过渡。
  • SO 问题通常需要代码。你的问题太笼统了。
  • 嗯,它很广泛,因为我试图确定这是否是,从广义上讲,可能的。但是您的观点很好,我添加了一个带有特定示例的 jsfiddle,希望如果有人愿意发表评论,这将提供更多上下文。谢谢。

标签: jquery html css css-animations


【解决方案1】:

当您知道确切的宽度和位置后,您可以在margin 上应用CSS transition

#mycontent {
    -webkit-transition: margin 2s;
    -ms-transition: margin 2s;
    -moz-transition: margin 2s;
    transition: margin 2s;
    margin-left: 0;
}
#mycontent.centered {
    margin: 0 150px;
}

JSFiddle

【讨论】:

  • 谢谢奥拉夫。让我看看我是否可以应用这种技术。通常我不会有这样的利润,但也许我可以做类似的事情。
  • 是否正确地说要制作这种类型的动画,您必须从已知的左边距和到左边距开始?
  • 是的,至少,这是我从list of animatable properties 中读到的。看来,您可以省略margin-left: 0。虽然,当您将150px 替换为auto 时,它不会做动画,而是跳转到目标位置。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 2014-01-16
  • 1970-01-01
  • 2017-05-21
  • 1970-01-01
相关资源
最近更新 更多