gpt4 book ai didi

jquery - 使用显示更少/更多选项截断多行 HTML 绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 06:45:32 25 4
gpt4 key购买 nike

我有一个与此类似的问题 question 。此解决方案的问题在于 jquery.autoellipsis会减慢我的应用程序的速度,并且还需要进行更改才能添加显示更多/更少功能。

就我而言,我从 ng-repeat 中的 ng-bind-html 获取动态内容作为 html 代码。

  <ion-item ng-repeat="page in pages">
<div ng-bind-html="page.extract" class="item item-text-wrap"></div>
</ion-item>

我想要一个指令,在 X 像素(高度)或 Y 线之后截断 html 代码,并显示选项查看更多/更少以防有内容要显示。

我发现的大多数解决方案仅适用于纯文本或需要其他插件,例如 More .

谢谢。

最佳答案

在测试了一些可用的 Jquery 插件后,这是效果最好的一个:Trunk8

原因:

  1. 加载速度更快。
  2. 适用于纯测试和 html(没有太多代码)。
  3. 服装化可以在指令中完成。

步骤:

  1. 下载 Trunk8
  2. 添加对 jQuery 的访问权限和插件: trunk8.js
  3. 创建指令(见下文)
  4. 添加对指令的访问权限(如有必要)
  5. 从 app.js 访问 modude:var app = angular.module('app', ['ellipsis'])
  6. 从您的 View 中调用指令。

指令:

angular.module( 'ellipsis', [])
.directive('ellipsis', [function () {
return {
required: 'ngBindHtml',
restrict: 'A',
priority: 100,
link: function ($scope, element, attrs, ctrl) {
$scope.hasEllipsis = false;
$scope.$watch(element.html(), function(value) {
if (!$scope.hasEllipsis) {
// apply this code ONCE
$scope.hasEllipsis = true;
$(element).trunk8({
fill: '&hellip; <a id="read-more" href="#">read more</a>', /*(Default: '&hellip;') The string to insert in place of the omitted text. This value may include HTML.*/
lines: 3, /*(Default: 1) The number of lines of text-wrap to tolerate before truncating. This value must be an integer greater than or equal to 1.*/
//side: 'right', /*(Default: 'right') The side of the text from which to truncate. Valid values include 'center', 'left', and 'right'.*/
tooltip: false, /*(Default: true) When true, the title attribute of the targeted HTML element will be set to the original, untruncated string. Valid values include true and false.*/
//width: 'auto', /*(Default: 'auto') The width, in characters, of the desired text. When set to 'auto', trunk8 will maximize the amount of text without spilling over.*/
parseHTML: true /*(Default: 'false') When true, parse and save html structure and restore structure in the truncated text.*/
//onTruncate /*(Callback): Called after truncation is completed.*/
});
$(element).on('click', '#read-more', function (event) {
$(element).trunk8('revert').append(' <a id="read-less" href="#">read less</a>');
});
$(element).on('click', '#read-less', function (event) {
$(element).trunk8();
});
}
});
}
};
}]);

查看:

<ion-item ng-repeat="page in pages">
<div ng-bind-html="page.extract" class="item item-text-wrap" ellipsis></div>
</ion-item>

关于jquery - 使用显示更少/更多选项截断多行 HTML 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29666741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com