【问题标题】:How to position web user control according to client screen如何根据客户端屏幕定位 Web 用户控件
【发布时间】:2013-07-05 07:23:58
【问题描述】:

我正在使用 asp 和 Ajax 控件构建一个多列组合框。 它工作得很好。 如何使用javascript根据客户端屏幕和页面上的用户控件位置设置下拉大小和位置。

【问题讨论】:

    标签: javascript asp.net css web-user-controls


    【解决方案1】:

    您需要使用元素的.style.leftstyle.top 等属性,以及document.body 元素的.scrollHeight。对于大小,您将使用 .style.height.style.width

    元素的样式必须在 CSS 中使用 position:absolute。您可以通过将父级设置为 position:relative 来设置它们相对于父级的绝对位置。

    那么,Javascript 可能看起来像:

    yourelement.style.top= document.body.scrollHeight + 100 + 'px';
    

    ...将元素的上边缘放置在距离窗口滚动高度 100px 处。


    每个元素的绝对位置和位置可以通过以下方式控制:

    yourelement.style.top = ...'px';
    yourelement.style.bottom = ...'px';
    yourelement.style.left = ...'px';
    yourelement.style.right = ...'px';
    
    yourelement.style.width = ...'px';
    yourelement.style.height = ...'px';
    

    要获得各种高度和宽度,您可以使用document.scrollHeightdocument.documentElement.scrollHeightdocument.body.scrollHeight(取决于浏览器)。这些也有.scrollWidth

    【讨论】:

    • 不工作我把这些都放在一个函数中(在警告框中)并从我的用户控件的 onfocus 事件中调用该函数,它显示了注意。我需要我的用户控件在客户端上的位置screen.where 正是我的控件所在的位置。
    • 将控制框的样式设置为position:absolute。然后使用.offsetHeight.clientHeight.scrollHeight,以及我的答案中的信息,做你想做的事。没有别的办法,所以如果不行,就需要慢慢调试或者研究一下。
    • 它正在工作。在将控件扭曲到容器中之后。我可以获得容器的宽度、高度、顶部和左侧。
    • OK 很好 - 听起来你走在正确的轨道上。欢迎来到 SO :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多