天天看點

巧用iframe 和div遮擋 select 等控件

Div被Select擋住,是一個比較常見的問題。有的朋友通過把div的内容放入iframe或object裡來解決。

這樣會破壞頁面的結構,互動性不大好。

另一種方法是:

雖說div直接蓋不住select,但是div可以蓋iframe,而iframe可以蓋select,是以把一個iframe來當作div的底。

相關代碼:

  1. <p class="msg">已添加,您現在還需要繼續嗎?</p>
  2. <p><input name="close" οnclick="javascript:hidePop();" type="button" class="btn1"/></p>
  3. <iframe id="popiframe" style="display:none"></iframe>
  1. function usershowPop()
  2. {
  3.     var width  = 319;  //彈出框的寬度
  4.     var height = 138;  //彈出框的高度
  5.     var obj    = document.getElementById("msg");
  6.     var obj_iframe  = document.getElementById("popiframe");
  7.     obj_iframe.style.display  = obj.style.display  = "block";
  8.     obj_iframe.style.position = obj.style.position = "absolute";
  9.     obj_iframe.style.zindex   = obj.style.zindex   = "999";
  10.     obj_iframe.style.width    = obj.style.width    = width + "px";
  11.     obj_iframe.style.height   = obj.style.height   = height + "px";
  12.     var p_top    = document.documentElement.scrollTop;
  13.     var p_left   = document.documentElement.scrollLeft;
  14.     var p_height = document.documentElement.clientHeight;
  15.     var p_width  = document.documentElement.clientWidth;
  16.     leftadd = (p_width-width)/2;
  17.     topadd  = (p_height-height)/2;
  18.     obj_iframe.style.top  = obj.style.top  = (p_top  + topadd)  + "px";
  19.     obj_iframe.style.left = obj.style.left = (p_left + leftadd) + "px";
  20.     window.onscroll = function (){
  21.         obj_iframe.style.top  = obj.style.top  = (document.documentElement.scrollTop  + topadd)  +"px";
  22.         obj_iframe.style.left = obj.style.left = (document.documentElement.scrollLeft + leftadd) +"px";
  23.     };
  24. }
  25. function userhidePop()
  26. {
  27.     obj = document.getElementById("msg");
  28.     document.body.removeChild(obj);
  29.     document.getElementById("popiframe").style.display = "none";
  30. }

這個div就可以蓋住select了.

繼續閱讀