Скрипт за шрифта

sentenello

Registered
Здравейте,
Намерих си едно скриптче за Промяна в големината на шрифта.
ето го скрипта
Код:
<script language="JavaScript" type="text/javascript">
function changeFontSize(inc)
{
  var p = document.getElementsByClassName('entry');
  for(n=0; n<p.length; n++) {
    if(p[n].style.fontSize) {
       var size = parseInt(p[n].style.fontSize.replace("px", ""));
    } else {
       var size = 14;
    }
    p[n].style.fontSize = size+inc + 'px';
   }
}
</script>
ето го и хтмл кода
Код:
<a href='javascript:changeFontSize(1)'>A+</a> 
<a href='javascript:changeFontSize(-1)'>A-</a>

Въпроса ми е къде трябва да пипна за да мога да имам и "A" което да връщза към началната големина на шрифта.
 
Fakeheal каза:
Код:
<a href='' onClick="document.getElementsByClassName('entry').style.fontSize='12px'">Нормален шрифт</a>

Ако 12 ти е първоначалния шрифт.

То добре, но целта ми е това нещо да става без презареждане, а с тоя код страницата се презарежда,
 
Mapu0 каза:
<a href='' onMouseOver="document.getElementsByClassName('entry').style.fontSize='12px'">Нормален шрифт</a>

Така като с=доближиш мишката и ще ти стане на 12px

Съжалявам, но и това не ми върши работа.
Трябва ми да се клика и да става някакъв размер без да се рефрешва страницата.
 
Това при мен върши работа:

<script type="text/javascript">
$(document).ready(function() {

$(".fontScalerFixed").fontScaler({
target: '.fontScalerFixed',
containerclass: 'fontScaler',
store:true,
fixed: {
size1: '500',
size2: '100',
size3: '125',
size4: '150'
}
});
});
</script>
 
Защо вместо да се мъчш и чудиш с тоя js не направиш js да слагаш класове на главния контеинер или там където ти е текста и от CSS да си настройваш шрифта?
 
shterev каза:
Защо вместо да се мъчш и чудиш с тоя js не направиш js да слагаш класове на главния контеинер или там където ти е текста и от CSS да си настройваш шрифта?

JS-та в момента ми върши перфектна работа за намаляне и уголемяване на шрифта. Той JS-та си сменя на div class=entry фонт сайза и върши същата работа която ти ми предлагаш да направя.

Проблема ми е, че се скъсах да търся JS код който да прави текста в това поле точно определени пиксели и не можах да открия.
 
Mapu0 каза:
това което ти написах не става ли :idea: :!:

Идея си нямам как да го ползвам, а и аз искам ако има начин да го го направя в моя код дето съм дал. Ако може да се напише нещо в скрипта? Идея си нямам затова питам вас
 
Ще се побъркам вече.
Ако някой може да ми помогне с този код ще ми помогне много, защото ще спестя от хапчета :shock: :shock:

Ето го кода
Код:
<script language="JavaScript" type="text/javascript">
function changeFontSize(inc)
{
  var p = document.getElementsByClassName('entry');
  for(n=0; n<p.length; n++) {
    if(p[n].style.fontSize) {
       var size = parseInt(p[n].style.fontSize.replace("px", ""));
    } else {
       var size = 14;
    }
    p[n].style.fontSize = size+inc + 'px';
   }
}
</script>

След този код имам
Код:
<a href='javascript:changeFontSize(-1)'>A</a>   
<a href='javascript:changeFontSize(1)'><font style='font-size:16px;'>A</font></a>
което намаля и увеличава шрифта. Ако може някой да ми вгради код който да сетва шрифта на дадени пиксели ще е златен.
 
Ето драснах това набързо:
js:
Код:
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
         $(function() {
            var f_size = $('#text').css('font-size').slice(0,2);
            var first_size = f_size; 
            
            $('#bigger').click(function() {
                $('#text').css('font-size', (f_size++)+'px');
            });
            
            $('#smaller').click(function() {
                $('#text').css('font-size', (f_size--)+'px');
            });
            
            $('#default').click(function() {
                $('#text').css('font-size', first_size + 'px');
            });
         });
	</script>

html:

Код:
<a href="#" id="bigger">A+</a> | <a href="#" id="smaller">A-</a> | <a href="#" id="default">Default</a>
        <div id="text">
            text text text text text text text text text<br />
            text text text text text text text text text
        </div>
На променливата first_size можеш да зададеш стойност число, която да ти бъде размера на шрифта по подразбиране. :wink:
 
fenixpz каза:
Ето драснах това набързо:
js:
Код:
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
	<script type="text/javascript">
         $(function() {
            var f_size = $('#text').css('font-size').slice(0,2);
            var first_size = f_size; 
            
            $('#bigger').click(function() {
                $('#text').css('font-size', (f_size++)+'px');
            });
            
            $('#smaller').click(function() {
                $('#text').css('font-size', (f_size--)+'px');
            });
            
            $('#default').click(function() {
                $('#text').css('font-size', first_size + 'px');
            });
         });
	</script>

html:

Код:
<a href="#" id="bigger">A+</a> | <a href="#" id="smaller">A-</a> | <a href="#" id="default">Default</a>
        <div id="text">
            text text text text text text text text text<br />
            text text text text text text text text text
        </div>
На променливата first_size можеш да зададеш стойност число, която да ти бъде размера на шрифта по подразбиране. :wink:

Скрипта е точно това което искам, но.
Когато увелича шрифта до 20px примерно, след това двама Дефаулт и той става 12px. След това кликам да намаля текста и той става 20px и почва от там надоло да намаля,а не от 12px колко е в момента.
 
Заповядай:
Код:
$(function() {
            var f_size = $('#text').css('font-size').slice(0,2);
            var first_size = f_size; 
            
            $('#bigger').click(function() {
                $('#text').css('font-size', (f_size++)+'px');
            });
            
            $('#smaller').click(function() {
                $('#text').css('font-size', (f_size--)+'px');
            });
            
            $('#default').click(function() {
                $('#text').css('font-size', first_size + 'px');
                f_size = first_size;
            });
         });
Бях забравил това f_size = first_size; :wink:
 
fenixpz каза:
Заповядай:
Код:
$(function() {
            var f_size = $('#text').css('font-size').slice(0,2);
            var first_size = f_size; 
            
            $('#bigger').click(function() {
                $('#text').css('font-size', (f_size++)+'px');
            });
            
            $('#smaller').click(function() {
                $('#text').css('font-size', (f_size--)+'px');
            });
            
            $('#default').click(function() {
                $('#text').css('font-size', first_size + 'px');
                f_size = first_size;
            });
         });
Бях забравил това f_size = first_size; :wink:

Сега наистина е добре, това което казах, но ми направи впечатление че..

Примерно в мометна се намалят с 1px на всяко кликане. Намалям го до 5px и после кликам да го увеличи, но вместо това го намаля до 4px, веднага след това пак кликам за увеличаване и вече започва да си увеличава както му е реда, на всяко кликане по 1px.
П.С. Същото става и в обратния вариант - първо увеличавам, после намалям.

Ако е нещо лесно за оправяне ще ти бъда бладогарен и него да направиш. Иначе ти благодаря за скрипта, и чакам отговор в темата и да ти дам точката. :?:
 
Извинявай приятел, не съобразих операторите за инкрементиране и декрементиране:
Код:
$(function() {
            var f_size = $('#text').css('font-size').slice(0,2);
            var first_size = f_size; 
            
            $('#bigger').click(function() {
                $('#text').css('font-size', (++f_size)+'px');
            });
            
            $('#smaller').click(function() {
                $('#text').css('font-size', (--f_size)+'px');
            });
            
            $('#default').click(function() {
                $('#text').css('font-size', first_size + 'px');
                f_size = first_size;
            });
         });
 
fenixpz каза:
Извинявай приятел, не съобразих операторите за инкрементиране и декрементиране:
Код:
$(function() {
            var f_size = $('#text').css('font-size').slice(0,2);
            var first_size = f_size; 
            
            $('#bigger').click(function() {
                $('#text').css('font-size', (++f_size)+'px');
            });
            
            $('#smaller').click(function() {
                $('#text').css('font-size', (--f_size)+'px');
            });
            
            $('#default').click(function() {
                $('#text').css('font-size', first_size + 'px');
                f_size = first_size;
            });
         });

Извинявай, че нахалсвам. Ако можеш да направиш някакво максимално уголемяване и максимално намаляване да има ще е супер. Ако е голяма играчка заеби го. Просто ми кажи за да знам и да ти давам +1
 
Заповядай:
Код:
$(function() {
            var f_size = $('#text').css('font-size').slice(0,2);
            var first_size = f_size;
            $max = 30;
            $min = 9;
           
            $('#bigger').click(function() {
                if(f_size < $max) {
                    $('#text').css('font-size', (++f_size)+'px');
                }
                
            });
           
            $('#smaller').click(function() {
                if(f_size > $min) {
                    $('#text').css('font-size', (--f_size)+'px');
                }
                
            });
           
            $('#default').click(function() {
                $('#text').css('font-size', first_size + 'px');
                f_size = first_size;
            });
         });

На $max и $min задаваш стойности и си готов :wink:
 
fenixpz каза:
Заповядай:
Код:
$(function() {
            var f_size = $('#text').css('font-size').slice(0,2);
            var first_size = f_size;
            $max = 30;
            $min = 9;
           
            $('#bigger').click(function() {
                if(f_size < $max) {
                    $('#text').css('font-size', (++f_size)+'px');
                }
                
            });
           
            $('#smaller').click(function() {
                if(f_size > $min) {
                    $('#text').css('font-size', (--f_size)+'px');
                }
                
            });
           
            $('#default').click(function() {
                $('#text').css('font-size', first_size + 'px');
                f_size = first_size;
            });
         });

На $max и $min задаваш стойности и си готов :wink:

Благодаря ти много. Наистина не вярвах, че някой може да ми играе толкова по капризите. Малко ти е точката, но само това мога да ти дам +1
 

Back
Горе