Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于高度的角度显示元素_Javascript_Html_Css_Angularjs - Fatal编程技术网

Javascript 基于高度的角度显示元素

Javascript 基于高度的角度显示元素,javascript,html,css,angularjs,Javascript,Html,Css,Angularjs,目前,我有一个段落根据最大高度缩短/延长。我想知道是否有一种方法可以在高度超过一定量时显示/隐藏锚元素。 本质上,我只想在需要的时候展示“更多…” $scope.hidden=true \u说明{ 溢出:隐藏; 单词包装:打断单词; 文本溢出:省略号; } .更少{ 最大高度:160像素; } {{hidden?'More…':'Less…'}}您可以根据描述的长度来显示 定义和用法 length属性返回字符串的长度(字符数) 空字符串的长度为0 例如: <a href="#" ng-

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

$scope.hidden=true
\u说明{
溢出:隐藏;
单词包装:打断单词;
文本溢出:省略号;
}
.更少{
最大高度:160像素;
}


{{hidden?'More…':'Less…'}}
您可以根据描述的长度来显示

定义和用法

length属性返回字符串的长度(字符数)

空字符串的长度为0

例如:

<a href="#" ng-show="program.Description.length < 1000">More...</a>

编辑:

正如@Andrew Tomlinson提到的,您可以将逻辑保留在一句话中,例如:

<a href="#"> (program.Description.length < 1000) ? 'More...' : 'Less...'</a>
(program.Description.length<1000)?'“更多…”:“更少…”

您可以根据描述的长度来显示

定义和用法

length属性返回字符串的长度(字符数)

空字符串的长度为0

例如:

<a href="#" ng-show="program.Description.length < 1000">More...</a>

编辑:

正如@Andrew Tomlinson提到的,您可以将逻辑保留在一句话中,例如:

<a href="#"> (program.Description.length < 1000) ? 'More...' : 'Less...'</a>
(program.Description.length<1000)?'“更多…”:“更少…”

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

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

下面是关于一般思想的伪代码。(下面是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.. 

         }
     }

})

angular.module('myApp')。指令('programDescription',function(){
返回{
限制:“A”,
是的,

模板:“

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

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

下面是基本思想的伪代码 为了使代码更适合你的需要,我需要更多的信息

<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.. 

         }
     }

})

angular.module('myApp')。指令('programDescription',function(){
返回{
限制:“A”,
是的,


模板:'/p>如何加载内容?它是通过Ajax动态加载的还是只在第一个加载上?你是否考虑根据描述字符长度来显示“更多…”?即,如何加载内容?它是通过Ajax动态加载的,还是仅在第一次加载的?你是否考虑显示“更多…”根据描述字符长度?即,…我喜欢使用长度而不是最大高度(因为最大高度实际上会根据
隐藏的状态而变化)但是我认为这样做的目的是保持“More/Less”锚的功能不变,如果描述的长度足够短,可以先隐藏在容器中。可能类似于
{{hidden?'More…':'Less…}
可以吗?如果我使用.length,我必须在程序中定义长度。不?
length
是javascript字符串对象的属性,因此您不必在程序中单独定义它。组成字符串的是字符数。此解决方案不起作用。虽然显示的内容较少,但字符串是一样的。你不能依赖长度。我喜欢使用长度而不是最大高度(因为最大高度实际上会根据
隐藏的状态而改变)但是我认为这样做的目的是保持“More/Less”锚的功能不变,如果描述的长度足够短,可以先隐藏在容器中。可能类似于
{{hidden?'More…':'Less…}
可以吗?如果我使用.length,我必须在程序中定义长度。不?
length
是javascript字符串对象的属性,因此您不必在程序中单独定义它。组成字符串的是字符数。此解决方案不起作用。虽然显示的内容较少,但字符串是一样的。你不能依赖于长度。仅仅根据描述的长度显示“少”或“多”,这不是有点过分吗?@MHakvoort取决于场景。我喜欢多跑一英里,获得可重用的组件,并在社区中共享。啊,我现在看到你对他的“问题”的看法了。答案很好,要投票了。这不是吗根据描述的长度显示“少”或“多”有点过头了?@MHakvoort取决于场景。我喜欢多做一点,获得可重用组件,并在社区中共享。啊,我现在看到你对他的“问题”的看法了。回答好,我要投赞成票。