首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态调整CFWINDOW大小以适应内容

动态调整CFWINDOW大小以适应内容
EN

Stack Overflow用户
提问于 2010-06-09 06:51:38
回答 1查看 1.1K关注 0票数 0

我目前在一个网站上工作,它使用了大量的cfwindow对象,我想知道是否有人知道一种动态调整窗口大小的方法,以便所有内容都适合不需要滚动条的情况。

我尝试过使用overflow=visible配置,但似乎没有什么不同。

提前感谢您的建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-09 14:37:24

在使用弹出窗口显示图像时,这是一种典型的任务。这是通过测量图像大小并使用window.resizeBy(w,h)调整衍生窗口的大小来完成的。我认为这仍然是适用的方法。

第二个类似的选项是计算服务器端所需的大小,并将其传递给cfwindow属性widthheight。比方说,您可以将内容捕获到cfcontent中并检查其长度(以字符为单位)。

请注意,当您处理文本内容时,这两种方法都是不可靠的,因为呈现字体对于用户来说可能真的不同。因此,保留一些额外的高度可能是有用的。

另一个棘手的方法是检查已经打开的窗口的滚动条是否存在。有一个属性scrollHeight,您可以将其与clientHeight进行比较并增加高度。这可能会在一些浏览器中产生一些丑陋的“跳跃”效果,但它应该可以工作。

我很感兴趣,并尝试了最后一个方法的快速测试。第一次生成弹出窗口,w/h=200,此答案文本(上面的单词)作为内容。接下来,我在弹出窗口中执行了以下操作:

代码语言:javascript
复制
<script type="text/javascript">
window.onload = function() {

    // check the size before resize
    alert("Window Width = " + window.innerWidth + "\nWindow Height = " + window.innerHeight + "\nScrollHeight =  " + document.body.scrollHeight);

    if (window.innerHeight < document.body.scrollHeight) {
        // here's where we can play with resize steps and other specific trickery
        // now we're trying to expand size a bit
        window.resizeBy(window.innerWidth + 50, window.innerHeight + 50);
    }

    // check the size after resize
    alert("Window Width = " + window.innerWidth + "\nWindow Height = " + window.innerHeight + "\nScrollHeight =  " + document.body.scrollHeight);

}
</script>

警报#1:

代码语言:javascript
复制
Window Width = 200
Window Height = 200
ScrollHeight =  783

警告#2:

代码语言:javascript
复制
Window Width = 450
Window Height = 450
ScrollHeight =  358

请注意,我不能100%确定(现在也不能确认) window.innerWidth/Height属性是否可以在IE中工作--您也应该考虑document.documentElement.clientWidth/Height属性。

希望这能有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3001918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档