根据容器的高度/宽度改变字体大小
Change font size based on container height/width
我想做一个简单的jquery函数:
<div id="container"><span>This is my text</span></div>
js代码:
$(document).ready(function() {
var fontSize = parseInt($("#container").width()/4)+"px";
$("#container span").css('font-size', fontSize);
});
css代码:* {
font-family:Myriad Pro;
}
#container {
height:100px;
width:98%;
background-color:#eeeeee;
padding:1%;
}
当我调整窗口大小并刷新它时,它可以工作,但我希望它连续工作,所以当我调整浏览器窗口大小时,字体大小是动态变化的。
http://jsfiddle.net/8TrTU/1627/您可以在窗口大小调整事件上添加处理程序,并执行一个新函数update_fontsize
来保持您的字体大小魔术:
var update_fontsize = function(){
var fontSize = parseInt($("#container").width()/4)+"px";
$("#container span").css('font-size', fontSize);
};
$(window).resize(function() {
update_fontsize();
});
$(document).ready(function() {
update_fontsize();
});
将您的代码保存在命名为function
的地方,例如- changeSize
,并将其命名为document.ready
和window.resize
,如下所示:
function changeSize(){
var fontSize = parseInt($("#container").width()/4)+"px";
$("#container span").css('font-size', fontSize);
}
$(document).ready(function() {
changeSize();
$(window).resize(changeSize);
});
或只在document.ready()
中出现一次
$(document).ready(function() {
$(window).resize(changeSize).trigger('resize');
});
$(document).ready(function() {
$(window).resize(function(){
var fontSize = parseInt($("#container").width()/4)+"px";
$("#container span").css('font-size', fontSize);
});
var fontSize = parseInt($("#container").width()/4)+"px";
$("#container span").css('font-size', fontSize);
});
* {
font-family:Myriad Pro;
}
#container {
height:100px;
width:98%;
background-color:#eeeeee;
padding:1%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="container"><span>This is my text</span></div>
您可以使用$(window).resize
event:
$(window).resize(function() {
var fontSize = parseInt($("#container").width()/4)+"px";
$("#container span").css('font-size', fontSize);
});
* {
font-family:Myriad Pro;
}
#container {
height:100px;
width:98%;
background-color:#eeeeee;
padding:1%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="container"><span>This is my text</span></div>
function resizeFont() {
var fontSize = parseInt($("#container").width()/4)+"px";
$("#container span").css('font-size', fontSize);
}
$(document).ready(function() {
resizeFont();
});
$( window ).resize(function() {
resizeFont();
});
由于事件调整大小导致网页上的沉重开销,我建议在这种情况下使用+value instead of parseInt()
和caching the DOM elements
不要一次又一次地选择它们,就像在这个fiddle: http://jsfiddle.net/8TrTU/1631/
尝试使用jQuery的。resize函数
var resizeFunction = function() {
var fontSize = parseInt($("#container").width()/4)+"px";
$("#container span").css('font-size', fontSize);
}
$(document).ready(function() {
resizeFunction();
});
$( window ).resize(function() {
resizeFunction();
});
* {
font-family:Myriad Pro;
}
#container {
height:100px;
width:98%;
background-color:#eeeeee;
padding:1%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="container"><span>This is my text</span></div>
这可以使用纯CSS来完成,看看这篇文章:
https://css-tricks.com/viewport-sized-typography/另外,考虑使用em或rem作为font-size,而不是px.
https://j.eremy.net/confused-about-rem-and-em/相关文章:
- 用于根据用户改变文本区域的字体颜色的JavaScript'的选择
- 为什么嵌入式谷歌地图会改变Chrome's字体呈现
- 改变Facebook评论社交插件的字体大小-在页面上的评论数
- 尝试使用Jquery悬停来改变字体大小
- 如何用javascript改变android webView的字体
- Jquery下拉菜单改变悬停时的字体重量
- 改变按钮的字体大小
- 根据容器的高度/宽度改变字体大小
- 根据被过滤的值来改变字体颜色
- 想要改变字体来回使用javascript按钮
- 在ng样式中根据数学表达式改变字体的颜色
- 自定义Angular指令来动态改变字体大小
- JQuery .mouseover和.mouseout改变字体颜色
- 使用FontSelector来改变字体族
- 如何改变字体大小,当你*不't*控制HTML
- 在epubfile中改变字体样式会增加/减少uiwebview中的页面数量
- Javascript/Html:我如何改变字体/字体本身的大小,而不仅仅是颜色
- 手风琴布局在改变字体大小时未使用 CSS calc() 填充可用高度
- 改变字体的颜色标签
- 我如何使execCommand改变字体类型为我的所见即所得