js如何改变控件的显示位置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何改变控件的显示位置相关的知识,希望对你有一定的参考价值。

用了个JS的日历控件,但是控件的显示位置总是在左上角,没办法跟随在输入框的下方,请问是代码出了什么问题吗?可不可以修改其显示位置?如何修改?部分代码如下:
var x,y,intLoop,intWeeks,intDays;
var DivContent;
var year,month,day;
var o=eval("document.all."+InputBox);
var thisyear; //真正的今年年份

thisyear=new getToday();
thisyear=thisyear.year;

today = o.value;
if(isDate(today))
today = new getStringDay(today);
else
today = new getToday();

//显示的位置
x=o.offsetLeft;
y=o.offsetTop;
while(o=o.offsetParent)

x+=o.offsetLeft;
y+=o.offsetTop;

document.all.Calendar.style.left=x+2;
document.all.Calendar.style.top=y+20;
document.all.Calendar.style.visibility="visible";

1、使用js改变控件的style

var elem=document.getElementById("控件id");//获取控件
  elem.style.position = "absolute";//设置绝对定位(或者相对定位)
  elem.style.left = "50px";//设置left数值
  elem.style.top = "100px";//设置top数值

2、使用js改变元素的class

写好的style

.newPositionposition:absolute;top:50px;left:100px;

改变元素class(可以绑定在某个事件中,或者页面加载完成执行)

var elem=document.getElementById("控件id");//获取控件
elem.className='newPosition';//为空间添加class样式

参考技术A 浏览器容错性问题,试着在后面加上“px”单位:
document.all.Calendar.style.left=x+2 + "px";
document.all.Calendar.style.top=y+20 + "px";追问

实在感谢,就是这个原因,不过百度了style.left和offsetleft不同,知道了style.left的返回值是xxx,offsetleft的返回值是xxx px,所以试着加上px就解决了,就顺手采纳了当时只有一条回答,不好意思,还是十分感谢~

追答

你还我采纳率 5555....
还有一般style.left是设置位置,offset.left是取位置

参考技术B style.position没设置啊本回答被提问者采纳

winform窗体在其他电脑上启动控件位置出错

各位大神们,有一个问题,求助啊。我制作的WinForm窗体设计的时候,运行得好好的。但是在拷去其他电脑上面直接启动的时候,控件的位置会错乱,但是如果在那台电脑上重新编译一次(也就是随便按两下某一个控件的属性,也没有改变控件的属性)之后,启动,控件的位置就像在原来电脑上一样很正常。让我百思不得其解。因为这个软件最终要编译成release文件给客户用的,不可能让客户都装VS2013,重新编译吧。~~附图,求大神帮解决这个问题。1:直接启动的时候(不正常):

2:随便按两下某一个控件的属性(没有改变其属性)之后(恢复正常):

对不起了,没有财富值~~~跪求答案,

因为显示器的分辩率不同
你没有设置像数大小和位置,所以自动选择了默认属性,在新电脑里随便按两下就选择了新的默认所以又好了。追问

所有想问下你,怎么解决这个问题啊?能不能详细点啊?谢谢啊。

参考技术A 你这个问题没有遇到过啊,你那个控件是动态加载上去的吗?追问

不是,是直接拖上去的。

参考技术B 把控件的大小定死吧 如果可能的话把窗体大小也定死并且设置成不能改变大小 参考技术C 你初始化的时候 代码有问题。。 自己好好看下。。追问

初始化的时候,我都没有触发窗体LOAD事件。能不能具体一点啊,代码初始化是在哪个部分?我是新手~~事情比较急。谢谢

以上是关于js如何改变控件的显示位置的主要内容,如果未能解决你的问题,请参考以下文章

c#中如何改变控件位置.?

.net中如何动态改变Label控件的位置

vb中如何使窗体和控件的相对位置不发生改变

VS2008中Slider控件制作播放器的进度条,如何在视频播放时改变滑块位置

vb 如何用上下左右键改变控件位置,但是不改变焦点位置?

C#编程,分辨率改变后,怎么让窗体的大小,窗体上的控件大小,位置,按比例改变?