保持文本区域大小调整的比例
Maintain ration on textarea resize
调整浏览器窗口大小时,是否可以缩放文本区域的FONT SIZE并保持其比例?
我的要求:背景和前景上都有一个图像,我有一个文本区域,用户可以在其中添加文本。当调整bowser窗口的大小时,我需要保持文本区域的位置和比例。
如果使用jQuery,那么下面的代码将根据窗口的大小调整文本区域的大小和字体的大小。
在执行代码之前,请确保设置了文本区域的大小和字体大小(即,任何会改变这些区域大小的内容都已加载并执行)。
字体大小(包括单位)从CSS中读取,并根据窗口高度的变化进行更新;宽度被忽略。我怀疑你是否打算改变字体纵横比。
可以进行一些优化(只调整更改的尺寸;只在窗口高度更改时更改字体),但我将把这些留给您。
假设:
-
字体的初始大小在CSS 中设置
-
要保持其比率的textarea具有id"mytextarea"。
function startResizeHandling(){ var textarea = $('#mytextarea'); var initialHeight = textarea.height(), widthRatio = textarea.width()/$(window).width(), heightRatio = initialHeight/$(window).height(), cssFontSize = textarea.css('font-size'); var fontRatio = parseFloat(cssFontSize.match(/^([0-9.]+)/)[1]) / initialHeight, fontUnit = cssFontSize.match(/^[0-9.]+([a-z]+)$/i)[1]; function handleWindowResize() { var newWidth = widthRatio * $(window).width(), newHeight = heightRatio * $(window).height(); textarea.width(newWidth); textarea.height(newHeight); textarea.css('font-size', fontRatio * newHeight + fontUnit); } $(window).on('resize', handleWindowResize); };
编辑:
重读了这个问题后,我不清楚你是否想:
- 缩放文本区域的字体大小,并保持文本区域的比例,或者
- 缩放文本区域的字体大小,并保持字体的比例(即实际扭曲字体)
这个答案解决了第一个问题,而不是第二个问题。
相关文章:
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 如何动态调整文本大小以适应元素以防止拉伸
- 使用jquery调整文本区域的高度
- 如何根据浏览器按比例调整文本大小
- 与我的jquery弹出窗口和自动调整文本区域大小有冲突
- 根据php/mysql变量中的文本行调整文本区域的大小
- 使用keyup键键入时调整文本区域宽度
- 如何使用chrome应用程序窗口动态调整文本区域的大小
- 文本区域在页面加载时未正确调整文本量的大小
- 根据文本行调整文本区域的大小
- 根据内容自动调整文本框的大小
- 如何使用 Angular.js动态调整文本区域值的大小
- 自动调整文本输入框 HTML 的大小
- 如何使用新行调整文本框的大小
- 根据屏幕大小调整文本大小
- 自动调整文本区域大小
- 是否可以根据输入的内容调整文本区域的大小
- 根据内容自动调整文本区域的大小
- 调整文本大小会忽略小数
- 无法调整文本区域高度的大小