javascript - 基于高度的 Angular 显示元素

标签 javascript html css angularjs

目前我有一个段落会根据最大高度缩短/加长。我想知道如果高度超过一定数量,是否有一种方法可以显示/隐藏 anchor 元素。 本质上,我只想在需要时显示“更多...”。

$scope.hidden = true;
    .__Description {
    overflow: hidden;
    word-wrap: break-word;
    text-overflow: ellipsis;
    }
    .less {
      max-height: 160px;
 
    }
<div class="__Description">
	    <div class="__contents" ng-class="{less: hidden}">
		    <div data-ng-bind-html="program.Description"></div>
	    </div>
    </div>
    <a ng-click="hidden = !hidden">{{hidden? 'More...' : 'Less...'}}</a>

最佳答案

我会将内容和阅读内容包装在一个指令中。

该指令将监视内容高度,然后切换范围上的属性。

这是一般思想的伪代码。 (下面的plunker链接) 为了使代码更适合您的需要,我需要更多信息

<program-description>
<div class="__programDescription">
    <div class="__contents" ng-class="{less: hidden}">
        <div data-ng-bind-html="program.Description"></div>
    </div>
</div>

</program-description>


angular.module('myApp').directive('programDescription', function(){

    return {

         restrict: 'A',
         transclude: true, 
         template: '<div><div ng-transclude></div> <a ng-show="showToggle">{{ toggleText }}</a></div>',
         link: function( scope, element, attrs ){
               var limit = attrs.limit  ? parseInt(attrs.limit,10) : 200; // default to 200px
               scope.$watch(function(){
                   return element.find('.__programDescription').height();
               }, function(if (newValue > limit){
                   scope.showToggle = true;
               });

               .. some more code to handle more/less clicks.. 

         }
     }

})

可在以下位置找到可用的插件:http://plnkr.co/edit/Sm393HAzTRp8wqEPNkdg?p=preview

关于javascript - 基于高度的 Angular 显示元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34358819/

相关文章:

javascript - 连接多个输入类型编号

javascript - 如何在 Javascript 中使用 'in' 关键字

css - 图像的弹出文本。图片不在一条线上

html - 用 css 替换带有图标的文本

javascript - 播放来自 tumblr 帖子的音乐

css - 在没有额外标记的情况下将 clearfix 应用到第 n 个 child

javascript - 向 javascript 函数添加属性

javascript - 在 Firefox 中看不到 javascript 对象属性

html - 适合对象 : cover - is not working with video tags without border-radius

html - jQuery <select> 改变另一个<select>