html - angular.js 中的垂直进度条未显示正确的高度

标签 html css angularjs

我正在尝试创建我自己的垂直进度条,并正在考虑通过 CSS3 对其进行动画处理。我目前将它设置为一个 Angular Directive(指令),点击后,它应该改变内部 div 的高度属性。但是,当我使用 console.log(element.children().css('height')) 时,它会返回一个空白值,即使我已经将初始高度设置为 10%?

angular.js 指令

teacherApp.directive('clickToChangeHeight', function(){
  return {
    link: function(scope, element, attrs) {
      element.bind('click', function() {
        var height = element.children().css('height');
        console.log(height)
        //element.children().css('height', finalHeight);
      });
    }
  }
})

Jade 标记

div(ng-controller='TvCtrl')
  .outer(click-to-change-height)
    .inner

CSS

.outer {
  position: relative;
  overflow: hidden;
  width: 30px;
  height: 140px;
  border: 2px solid #ccc;
}

.inner {
  position: absolute;
  overflow: hidden;
  bottom: 0;
  width: 100%;
  height: 10%;
  background-color: #999;
  -webkit-transition: height 2s;
}

最佳答案

如果你不包含 jquery,angularJS 默认使用 jquery lite。您可以在源代码中找到 jquery lite 如何实现 css 功能 here (第 405 行)。如图所示,当您不将“value”参数传递给函数时,它只会返回它在元素的样式属性中找到的内容:

val = val || element.style[name];

这意味着如果你设置了 .inner 的样式属性

<div class="inner style="height:30px"> </div>

然后你会在 console.log 中打印出 30px,但如果没有,它不会找到你在 css 文件中设置的高度值。

但是,我认为你想要的是使用 css 函数来设置高度而不是仅仅打印,而只是使用

element.children().css('height', finalHeight)

如您所想,可以根据需要设置样式。由于现在 css 函数是 setter 并将 inner 的样式属性的“高度”设置为 finalHeight

关于html - angular.js 中的垂直进度条未显示正确的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17099751/

相关文章:

jquery - onclick 事件不适用于 ipad 和平板电脑

html - CSS 菜单娱乐

Javascript 函数 - 样式更改不起作用

javascript - Angular 中的 $document 和 $window.document 有什么区别?

angularjs - 如何测试使用 MEAN 堆栈 API 的 Angular 前端

html - 针对 Windows Phone 诺基亚 Lumia 的 CSS 媒体查询

html - 从 SEO 的角度来看,将网站所有内容安排在 <ul><li> 中是否更好?

javascript - 如何将 Javascript 对象的内容复制到空对象中?

html - 在 td 中使用 div 固定表格行高

html - 如何通过css在mvc中为 anchor 标签设置图像?