0

このプラグインを「max-height」CSS で使用できるようにする必要があります。現時点では、明確な高さを定義した場合にのみ機能しますが、代わりに max-height がある場合は機能しません。それも機能させる方法はありますか?

(function($) {
        $.fn.ellipsis = function()
        {
                return this.each(function()
                {
                        var el = $(this);

                        if(el.css("overflow") == "hidden")
                        {
                                var text = el.html();
                                var multiline = el.hasClass('multiline');
                                var t = $(this.cloneNode(true))
                                        .hide()
                                        .css('position', 'absolute')
                                        .css('overflow', 'visible')
                                        .width(multiline ? el.width() : 'auto')
                                        .height(multiline ? 'auto' : el.height())
                                        ;

                                el.after(t);

                                function height() { return t.height() > el.height(); };
                                function width() { return t.width() > el.width(); };

                                var func = multiline ? height : width;

                                while (text.length > 0 && func())
                                {
                                        text = text.substr(0, text.length - 1);
                                        t.html(text + "...");
                                }

                                el.html(t.html());
                                t.remove();
                        }
                });
        };
})(jQuery);
4

2 に答える 2

0

maxHeight プロパティの存在を確認する新しい変数を作成できるようですが、クリーンアップする必要があります。

var myHeight = (el.css('maxHeight')) ? el.css('maxHeight').split('px')[0] : el.height();

maxHeight がある場合、 のような値が得られますが500px、 は必要ないpxため、文字列を分割し、配列の最初の部分 (生の整数) を取得しました。

を置き換えるだけel.height()myHeight、利用可能な場合は maxHeight を取得できます。利用できない場合は、height プロパティを取得します。

于 2012-10-26T23:46:34.273 に答える