2010-01-21 58 views
1

以下是有問題的代碼的示例...注意,此代碼在FireFox中按預期工作。問題出在Internet Explorer中。爲什麼我的div元素在容器div發生溢出時發生移位:自動設置

function init() { 
 
    $(".listOUT").bind("mouseenter", function(e) { 
 
     $(this).toggleClass('listOUT', false); 
 
     $(this).toggleClass('listIN', true); 
 
     }) 
 
     .bind("mouseleave", function(e) { 
 
     $(this).toggleClass('listIN', false); 
 
     $(this).toggleClass('listOUT', true); 
 
     });
#container { 
 
    border: 1px solid black; 
 
} 
 
.controlContainer { 
 
    display: inline; 
 
    position: absolute; 
 
    height: 25px; 
 
    border: none; 
 
} 
 
.listOUT { 
 
    position: relative; 
 
    width: 100%; 
 
    cursor: pointer; 
 
    margin: 0 0 0 0; 
 
    height: 85%; 
 
    border: solid 1px #7F9DB9; 
 
    padding-right: 20px; 
 
    /* 
 
    \t background:url('images/ddImage_out.gif') no-repeat right center; 
 
    \t */ 
 
} 
 
.listIN { 
 
    position: relative; 
 
    width: 100%; 
 
    cursor: pointer; 
 
    margin: 0 0 0 0; 
 
    height: 85%; 
 
    border: inset 1px #7F9DB9; 
 
    padding-right: 20px; 
 
    /* 
 
     background:url('images/ddImage_in.gif') no-repeat right center; 
 
     */ 
 
} 
 
.listTEXT { 
 
    text-transform: none; 
 
    width: 100%; 
 
    position: relative; 
 
    font-size: 8pt; 
 
    color: Black; 
 
    font-family: Verdana; 
 
    cursor: pointer; 
 
    border: none; 
 
    padding-left: 4px; 
 
    padding-right: 0px; 
 
    padding-top: 0px; 
 
    padding-bottom: 0px; 
 
    overflow: hidden; 
 
} 
 
</style> </head> <body onload="init();"> <form id="form1" runat="server"> <div style="width:600px; height:200px;"> <div id="container" style="overflow:auto;position:relative;width:100%; height:100%;"> <div id="control1Container" style="left:67%;top:105px;width:15%;" class=
<script type="text/javascript" src="https://www.google.com/jsapi"></script> 
 
<script type="text/javascript"> 
 
    google.load('jquery', '1.3.1'); 
 
</script> 
 

 

 
<form id="form1" runat="server"> 
 
    <div style="width:600px; height:200px;"> 
 
    <div id="container" style="overflow:auto;position:relative;width:100%; height:100%;"> 
 
     <div id="control1Container" style="left:67%;top:105px;width:15%;" class="controlContainer"> 
 
     <div id="control1" class="listOUT"> 
 
      <input type="text" class="listTEXT" id="ddTextBox1" readonly="readonly" value="Digital" name="ddTextBox1" /> 
 
      <input type="hidden" value="1" id="selSelected1" name="selSelected1" /> 
 
     </div> 
 
     </div> 
 
     <div id="control3Container" style="left:50%;top:15px;width:36%;" class="controlContainer"> 
 
     <div id="control3" class="listOUT">I am a control</div> 
 
     </div> 
 
     <div id="control4Container" style="left:40%;top:145px;width:36%;" class="controlContainer"> 
 
     <div id="control4" class="listOUT">I am a control</div> 
 
     </div> 
 
     <div id="control2Container" style="left:47%;top:225px;width:36%;" class="controlContainer"> 
 
     <div id="control2" class="listOUT">I am a control</div> 
 
     </div> 
 
     <!-- more controls here --> 
 
    </div> 
 
    </div> 
 
</form>

回答

0

是否使用的是IE瀏覽器的版本? Firefox中的行爲與IE7中的相同,即使在IE7中也是如此。

+0

我正在使用Internet Explorer 8 – Andrew 2010-01-22 08:42:40

+0

Soo ..你的問題究竟是什麼,應該如何看待? – Eggie 2010-01-22 11:04:53

+0

當我移動到其中一個控件時,它將轉向右側。這不應該發生。這隻有在存在垂直滾動條時纔會發生。即。在容器div中至少有一個控件不在視圖中。控制邊框應該在mouseenter和mouseleave上改變顏色,但控件應保持在固定位置。 – Andrew 2010-01-22 12:24:12

0

我想我明白你的意思了。當我在Internet Explorer 8中打開您的網頁並指向控件時,它們移動到左側。我有很少的經驗的JavaScript,並從未使用過jQuery,但如果你想要做的就是改變mouseenter和mouseleave的邊框顏色,我可能會幫助你。

轉到http://www.mkforlag.com/eng_contact/並單擊淡藍色字段以查看邊框變爲褐色,背景變爲黃色。這是一種類似於你想要達到的效果嗎?