【发布时间】:2019-04-16 06:28:20
【问题描述】:
我正在尝试找出一种方法来检测横幅内特定跨度标签中的自动换行。如果它换行为 2 行,则将容器的总高度增加 56px。还有一个副标题(headline2)也需要增加(或减少)40px的高度。
我在这里编写了一些基本的 JS 代码来检查跨度的 div 高度,但它不是很好,也只能用于 3 行。
// Variable banner heights
var hl11sub = 368;
var hl21sub = 448;
var hl31sub = 548;
var hl12sub = 416;
var hl22sub = 496;
var hl32sub = 576;
var hLFontSizeCSS = window.getComputedStyle(headlineText, null).getPropertyValue("font-size");
var hL2FontSizeCSS = window.getComputedStyle(headline2text, null).getPropertyValue("font-size");
var bannerHeightCSS = window.getComputedStyle(banner, null).getPropertyValue("height");
var headlineHeight = headlineText.offsetHeight;
var hL2HeadHeight = headline2text.offsetHeight;
var headHeight = headlineText.style.lineHeight = parseInt(hLFontSizeCSS) + 10 + "px";
var hL2Height = headline2text.style.lineHeight = parseInt(hL2FontSizeCSS) + 10 + "px";
// Text Height values
var hL1LineHeight = parseInt(headHeight); // 8 is line height & padding
var hL2LinesHeight = 140;
var hL3LinesHeight = 195;
// HL2 height values
var hL2TextOver1LineHeight = parseInt(hL2Height); // 8 is line height & padding
var hL2TextOver2LineHeight = 84;
if(hL2HeadHeight == hL2TextOver1LineHeight && headlineHeight == hL1LineHeight){
banner.style.height = hl11sub + "px";
}
else if(hL2HeadHeight == hL2TextOver1LineHeight && headlineHeight == hL2LinesHeight){
banner.style.height = hl21sub + "px";
}
else if(hL2HeadHeight == hL2TextOver1LineHeight && headlineHeight >= hL3LinesHeight){
banner.style.height = hl31sub + "px";
}
else if(hL2HeadHeight == hL2TextOver2LineHeight && headlineHeight == hL1LineHeight){
// Single headline with 2 lines sub
banner.style.height = hl12sub + "px";
}
else if(hL2HeadHeight == hL2TextOver2LineHeight && headlineHeight == hL2LinesHeight){
// 2 headlines with 2 lines sub
banner.style.height = hl22sub + "px";
}
else {
banner.style.height = hl32sub + "px";
// 3 headlines with 2 lines sub
它只需要根据跨词是否换行一次、两次、三次等来改变横幅的高度。
对此的任何建议或帮助将不胜感激。
【问题讨论】:
-
使用窗口调整大小事件并检查文本元素的高度何时为 line-height *(您检查的行数),当为 true 时减小字体大小
-
谢谢乔,如果窗口从不调整大小而只是调整 div 的高度,这会起作用吗?它不是需要更改的整个页面。干杯
-
你的意思是高度如何减小尺寸?
标签: javascript dynamic height