【问题标题】:fadeIn and slide chaining on divdiv上的fadeIn和滑动链接
【发布时间】:2015-12-03 00:59:59
【问题描述】:

当我单击一个按钮时,我试图显示一个名为“设置”的<div>。它应该淡入然后向右滑动。它在屏幕左侧淡入。

到目前为止:

HTML

<div id="settings" ng-show="settings">

</div>

以及调用showSettings() function的链接:

<a href="#" ng-click="showSettings()"><i class="icon setting"></i></a>

CSS

#settings {
    background:red;
    position:fixed;
    top:0;
    left:0;
    bottom:0;
    width:400px;
}

控制者

$scope.showSettings = function(){
    $timeout(function() {
        $scope.settings = true;
    }, 250);     
}

所以我让它淡入,但我现在如何通过说 200px 让它向右滑动?

另外,我希望能够单击&lt;div&gt; 本身以外的任何位置来反转该过程。

【问题讨论】:

  • @HunterTurner:标签已删除,因此不再是问题 :)

标签: css angularjs


【解决方案1】:

类似这样的:

添加ng-class="{slide:slideFlag}"

在控制器中

$scope.showSettings = function () {
$timeout(function () {
  $scope.settings = true;
  $timeout(function () {
    $scope.slideFlag = true;  
  }, 250);

}, 250);

在css中:

.slide{
    transition: all 0.5s;
    margin-left:200px;
}

这是一个有效的小提琴: http://jsfiddle.net/q5cqh9qj/

另外,使用两个timeouts 的原因是,在更改display 属性时不能运行transition (settings = true;)

【讨论】:

  • 为此欢呼 - 你会如何建议逆转这个过程。将某种点击处理程序添加到页面的整个右侧?
  • 您可以在文档中添加点击处理程序
  • 我是否需要添加另一个 css 规则才能让 div 再次滑回?
  • 否,在设置 CSS 中,将 margin-left 设置为 0,然后在幻灯片 CSS 中沿左侧边距放置一个重要的(否则 Id 会覆盖类选择器)
  • 但是设置 css 有一个left:0
猜你喜欢
  • 1970-01-01
  • 2011-07-13
  • 1970-01-01
  • 2011-06-23
  • 1970-01-01
  • 1970-01-01
  • 2022-01-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多