我正在尝试通过单击按钮来增加字体大小。我已经让第一个可以工作了,但我无法理解第二个。第二个,每次点击都会将字体增加1px(我几乎被卡住了):
<input type="button" value="Increase Font Size 100px" onclick="increaseFontSizeBy100px()">
<p id="a">Font Size</p>
<input type="button" value="Increase Font Size 1px" onclick="increaseFontSizeBy1px()">
<p id="b">Font Size by 1 Pixel</p>
<script>
function increaseFontSizeBy100px() {
document.getElementById('a').style.fontSize = "100px";
}
function increaseFontSizeBy1px() {
var font = document.getElementById('b').style.fontSize;
font++;
}
</script>
将您的函数更改为下面的代码,看看会发生什么:
function increaseFontSizeBy100px() {
txt = document.getElementById('a');
style = window.getComputedStyle(txt, null).getPropertyValue('font-size');
currentSize = parseFloat(style);
txt.style.fontSize = (currentSize + 100) + 'px';
}
function increaseFontSizeBy1px() {
txt = document.getElementById('b');
style = window.getComputedStyle(txt, null).getPropertyValue('font-size');
currentSize = parseFloat(style);
txt.style.fontSize = (currentSize + 1) + 'px';
}
注意:正如你所看到的,这两个函数有很多重复。因此,如果我是你,我会更改此函数以将字体大小增加给定值(在本例中为 int)。
那么,我们能做些什么呢?我认为我们应该将这些功能变成更通用的功能。
看下面的代码:
function increaseFontSize(id, increaseFactor){
txt = document.getElementById(id);
style = window.getComputedStyle(txt, null).getPropertyValue('font-size');
currentSize = parseFloat(style);
txt.style.fontSize = (currentSize + increaseFactor) + 'px';
}
现在,例如,在按钮 “增加字体大小 1px” 中,您应该输入类似以下内容:
<input type="button" value="Increase Font Size 1px" onclick="increaseFontSize("b", 1)">
<p id="b">Font Size by 1 Pixel</p>
但是,如果我们想要一个“减小字体大小1px”,我们能做什么呢?我们用 -1 而不是 1 来调用该函数。
<input type="button" value="Decrease Font Size 1px" onclick="increaseFontSize("b", -1)">
<p id="b">Font Size by -1 Pixel</p>
我们还解决了减小字体大小问题。但是,我会将函数名称更改为更通用的名称,并在我要创建的两个函数中调用它:increaseFontSize(id,increaseFactor)和decreaseFontSize(id,decreaseFactor)。
就是这样。
试试这个:
<input type="button" value="Increase Font Size 100px" onclick="increaseFontSizeBy100px()">
<p id="a">Font Size</p>
<input type="button" value="Increase Font Size 1px" onclick="increaseFontSizeBy1px()">
<p id="b">Font Size by 1 Pixel</p>
<script>
function increaseFontSizeBy100px() {
document.getElementById('a').style.fontSize = "100px";
}
function increaseFontSizeBy1px() {
var id = document.getElementById('b');
var style = window.getComputedStyle(id, null).getPropertyValue('font-size');
var currentSize = parseInt(style);
currentSize++;
document.getElementById('b').style.fontSize = currentSize.toString();
}
</script>
$(document).ready(function() {
$("#ModelIDBarcode").click(function() {
newFontSize = incSize($('.barcode').css("font-size"), 10, 5, 120)
$('.barcode').css("font-size", newFontSize);
});
});
function incSize(currentSize, incr, min, max) {
fSize = (parseFloat(currentSize) + incr) % max + min;
return (fSize) + 'px';
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<label title="Click to increase size" id="ModelIDBarcode" class="barcode" style="font-family:'3 of 9 Barcode'; font-size:10px; background-color:white">
*ABarcodeValue*
</label>
const button = document.querySelector('.bigger');
button.addEventListener('click', function(e) {
const newFontSize =
parseFloat(getComputedStyle(e.currentTarget).fontSize) + 1;
e.currentTarget.style.fontSize = `${newFontSize}px`;
});
简单查询
字体大小
<input type="button" value="Increase Font Size 1px" onclick="increaseFontSizeBy1px()">
<p id="b">Font Size by 1 Pixel</p>
<script>
function increaseFontSizeBy100px() {
document.getElementById('a').style.fontSize = "100px";
}
function increaseFontSizeBy1px() {
var font = parseInt($("#b").css('font-size'));
font++;
document.getElementById('b').style.fontSize =font+ "px";
}
</script>
$(document).ready(function() {
$("#ModelIDBarcode").click(function() {
newFontSize = incSize($('.barcode').css("font-size"), 10, 5, 120)
$('.barcode').css("font-size", newFontSize);
});
});
function incSize(currentSize, incr, min, max) {
fSize = (parseFloat(currentSize) + incr) % max + min;
return (fSize) + 'px';
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<label title="Click to increase size" id="ModelIDBarcode" class="barcode" style="font-family:'3 of 9 Barcode'; font-size:10px; background-color:white">
*ABarcodeValue*
</label>
来源:我指的是 Jacoby Yarrow 在 2016 年 7 月 28 日 5:58 的回答。我用它来练习。这是改进之处。
将
id
设置在您想要的位置。如果您想对整个页面实现尺寸更改,可以将 id
设置为 body
id="TextLetterSizeChangeID"。或者,如果您想要其他元素,请将其设置为该元素,例如 <p>
或 <span>
。我删除了toString()
。我从函数中设置了变量。
<input type="button" value="Font + 1px" onclick="increaseSizeBy1px()">
<input type="button" value="Font - 1px" onclick="decreaseSizeBy1px()">
<p id="TextLetterSizeChangeID"> Some example text where You will see the changes.</p>
<script>
// extracting the current font-size, we'll get the value with word px, e.g. 16px
let fontSizeCurr = window.getComputedStyle(TextLetterSizeChangeID, null).getPropertyValue('font-size');
// with this we'll get rid of px; with pure number, math ops possible
let fontSizeCurrPars = parseInt(fontSizeCurr);
function increaseSizeBy1px()
{
fontSizeCurrPars++;
document.getElementById('TextLetterSizeChangeID').style.fontSize =
fontSizeCurrPars + "px";
// I needed to add + "px", otherwise it was not recognising new font size
// e.g., it was just 16, and fontSize requires "px" to recognize, e.g. 16px
}
function decreaseSizeBy1px()
{
fontSizeCurrPars--;
document.getElementById('TextLetterSizeChangeID').style.fontSize =
fontSizeCurrPars + "px";
}
</script>