0

IE 8-9 でテキスト リサイザーを動作させるのに問題があります。私が見つけた最良のプラグインは jFontSize と呼ばれます。

これら 2 つのバージョンの IE を除くすべてのブラウザで動作します。

このjFiddleを含めました... http://jsfiddle.net/GZyxJ/

私はまだ学んでいるので、おそらくばかげたことだと理解しています。Web サイトも HTML 5 で構築されており、jquery 1.9.1 が含まれています。

ありがとう!

<div class="size"> 
                <span>Change Font Size:-</span>
                <a class="jfontsize-button" id="jfontsize-minus" title="decrease font" href="#">A-</a>
                <a class="jfontsize-button" id="jfontsize-default" title="reset default font" href="#">A</a>
                <a class="jfontsize-button" id="jfontsize-plus" title="increase font" href="#">A+</a>

            </div>

(function($){
    $.fn.jfontsize = function(opcoes) {
        var $this=$(this);
        var defaults = {
            btnMinusClasseId: '#jfontsize-minus',
            btnDefaultClasseId: '#jfontsize-default',
            btnPlusClasseId: '#jfontsize-plus',
            btnMinusMaxHits: 5,
            btnPlusMaxHits: 5,
            sizeChange: 1
        };

        if(($.isArray(opcoes))||(!opcoes)){
            opcoes = $.extend(defaults, opcoes);
        } else {
            defaults.sizeChange = opcoes;
            opcoes = defaults;
        }

        var limite=new Array();
        var fontsize_padrao=new Array();

        $(this).each(function(i){
            limite[i]=0;
            fontsize_padrao[i];
        })

        $('#jfontsize-minus, #jfontsize-default, #jfontsize-plus').removeAttr('href');
        $('#jfontsize-minus, #jfontsize-default, #jfontsize-plus').css('cursor', 'pointer');

        /* Ação do Botão A- */
        $('#jfontsize-minus').click(function(){
            $this.each(function(i){
                if (limite[i]>(-(opcoes.btnMinusMaxHits))){
                    fontsize_padrao[i]=$(this).css('font-size');
                    fontsize_padrao[i]=fontsize_padrao[i].replace('px', '');
                    fontsize=$(this).css('font-size');
                    fontsize=parseInt(fontsize.replace('px', ''));
                    fontsize=fontsize-(opcoes.sizeChange);
                    fontsize_padrao[i]=fontsize_padrao[i]-(limite[i]*opcoes.sizeChange);
                    limite[i]--;
                    $(this).css('font-size', fontsize+'px');
                }
            })
        })

        /* Ação do Botão A */
        $('#jfontsize-default').click(function(){
            $this.each(function(i){
                limite[i]=0;
                $(this).css('font-size', fontsize_padrao[i]+'px');
            })
        })

        /* Ação do Botão A+ */
        $('#jfontsize-plus').click(function(){
            $this.each(function(i){
                if (limite[i]<opcoes.btnPlusMaxHits){
                    fontsize_padrao[i]=$(this).css('font-size');
                    fontsize_padrao[i]=fontsize_padrao[i].replace('px', '');
                    fontsize=$(this).css('font-size');
                    fontsize=parseInt(fontsize.replace('px', ''));
                    fontsize=fontsize+opcoes.sizeChange;
                    fontsize_padrao[i]=fontsize_padrao[i]-(limite[i]*opcoes.sizeChange);
                    limite[i]++;
                    $(this).css('font-size', fontsize+'px');
                }
            })
        })
    };
})(jQuery);
4

1 に答える 1

1

フィドルにjQueryを含めていません。左側のドロップダウンから選択します。

また、$('p').jfontsize();関数の呼び出し方法は、プラグインが追加される前に呼び出されていたことを意味します。

更新され、動作するフィドル

于 2013-03-04T22:29:59.723 に答える