select,object,iframe标签属于系统级别,所以如果div的z-index设为多少都无法遮盖select
解决办法:
可以将select的visibility样式改为hidden
.selectClass{visibility:"hidden";}
也可以自己用div做个下拉框,附自己写的js代码,有待完善,呵呵
function DivSelect() {
}
DivSelect.prototype = new DivSelect();
DivSelect.prototype = {
init:function(box,id,width,height,bg,url){
this.divId="div_"+id;
this.hiddenId=id;
this.width=width;
this.height=height;
this.bg=bg;
this.url=url;
this.divParent= this.createDiv(this.divId);
this.selectInit=this.createDiv("init");
this.selectInit.style.width=width+"px";
this.selectInit.style.height=height+"px";
this.selectInit.style.background="#C6E1F9 url("+bg+")";
this.selectInit.innerHTML="请选择";
this.divParent.style.width=width+"px";
this.divParent.style.height=height+"px";
this.divParent.style.background="#C6E1F9 url("+bg+")";
this.divBrother= this.createDiv(this.divId+"_b");
this.divBrother.style.display="none";
this.divBrother.style.position="absolute";
this.divBrother.style.width=width+"px";
this.hiddenObj= document.createElement("text");
this.hiddenObj.setAttribute("id",this.hiddenId);
this.hiddenObj.setAttribute("name",this.hiddenId);
this.divParent.appendChild(this.selectInit);
this.divParent.appendChild(this.hiddenObj);
var CLASS=this;
this.selectInit.onclick=function(){
if(CLASS.divBrother.style.display=="block"){
CLASS.divBrother.style.display="none";
}else{
CLASS.divBrother.style.display="block";
}
}
if(box!=undefined&&box.length>0){
document.getElementById(box).appendChild(this.divParent);
document.getElementById(box).appendChild(this.divBrother);
}else{
document.body.appendChild(this.divParent);
document.body.appendChild(this.divBrother);
}
},
createDiv:function(id){
var div = document.createElement("div");
div.setAttribute("id",id);
return div;
},
add:function(data,selectId){
var CLASS=this;
for(var i=0;i<data.length;i++){
var divObj=this.createDiv(data[i].value);
divObj.innerHTML=data[i].text;
divObj.onclick=function(){
CLASS.boxClick(this)
}
divObj.onmousemove = function(){
CLASS.boxMousemove(this)
}
divObj.onmouseover = function(){
CLASS.boxMouseover(this)
}
if(data[i].value==selectId){
CLASS.selectInit.setAttribute("id",data[i].value);
CLASS.selectInit.innerHTML=data[i].text;
divObj.className="on";
}
this.divBrother.appendChild(divObj)
}
},
boxClick:function(obj){
var CLASS=this;
CLASS.divBrother.style.display="none";
CLASS.hiddenObj.value=obj.getAttribute("id");
CLASS.selectInit.setAttribute("id",obj.getAttribute("id"));
CLASS.selectInit.innerHTML=obj.innerHTML;
if(CLASS.url!=undefined&&CLASS.url.length>0){
// location.href=CLASS.url+"&"+CLASS.hiddenId+"="+obj.getAttribute("id");
}
},
boxMousemove:function(obj){
var CLASS=this;
var divs=CLASS.divBrother.getElementsByTagName("div");
for(var i=0;i<divs.length;i++){
divs[i].className="";
}
obj.className="on";
},
boxMouseover:function(obj){
obj.className="";
}
}
调用方法:
var s=new DivSelect();
var data=[{"value":"1","text":"按人气指数排序"},
{"value":"2","text":"按发布时间排序"},
{"value":"3","text":"按开展时间排序"}];
s.init("","box",113,20,"下拉框背景图片地址","选择后需要跳转的地址") //初始化div
s.add(data,"3"); //增加数据,3为默认选择的
可通过s.boxClick=function(obj){
alert(obj.getAttribute("id"));
}重写选择触发事件
分享到:
相关推荐
第一就是比较有名的:一般div浮层在IE6下无法遮盖select元素的问题。首先提供了下面一个实例: 注解:如果你在FirFox下和IE7下看都 在html中关于select元素的问题在很多地方都提出过,而在前段时间的项目中,刚好...
通过以上步骤,我们可以成功地使用`<iframe>`作为遮罩层,解决IE6下`<select>`无法被`<div>`遮盖的问题。值得注意的是,虽然这个方法在IE6中有效,但它并不适用于其他现代浏览器,因为这些浏览器已经修复了这个问题...
### 最顶层div被flash或者下拉列表遮挡的问题解决 在网页设计中,有时会出现顶层的div元素被其他元素如Flash或下拉列表遮挡的情况。这种遮挡问题通常是由于CSS定位属性设置不当造成的,尤其是`z-index`值的设置不...
这个问题涉及到HTML中的`<div>`元素和`<select>`下拉列表之间的交互,具体表现为在Internet Explorer(特别是旧版本)中,`<select>`元素可能会穿透(z-index问题)或者遮盖住上方的`<div>`元素。 `<div>`元素是...
针对这个问题,jQuery提供了一种解决方案,通过创建一个透明的iframe来遮盖Select元素,从而达到让它“隐藏”在其他图层后面的效果。这种方法的基本思路是:当用户滚动或点击某个触发事件时,动态地插入一个透明的...
4. 兼容性考虑:示例代码中特别提到了在IE6浏览器中,如果使用DIV元素作为遮罩层,可能会遇到无法遮挡<select>元素的问题,因此选择了使用元素作为遮罩层,以解决该兼容性问题。另外,还特别考虑了页面在无滚动条时...
工作中用select总是遇到很多问题,例如经常出现select无法被div等元素遮盖,我想用其他元素模拟select可能会更好,最近刚学jquery,于是就写了个效果来模拟,顺便练习下,代码很冗长,希望大家多拍砖。
1. 找到与layer弹窗关联的CSS类,通常是包含select的最外层div。例如,可能会是`.layui-table-body`、`.layui-table-box`或`.layui-table-view`等类。 2. 修改这些类的`overflow`属性为`visible`。这将允许内容...
可以遮挡ie6下的select元素 但是在ie6下div没有透明度 2.弹出的div可以一直在浏览器屏幕中间显示 问题: 1.目前不支持.class 只支持#id 2.需要显示的div需要自己设置css 3.在ie6下需要设置css 例如div {_position: ...
用Div和TreeView模拟的下拉框树. 并解决了Select总在最顶端的问题,即下拉框中的树不被Select控件遮盖 用c# + asp.net 2.0实现 ComboBoxTreeCtrl.ascx为自定义下拉树控件 Default.aspx为例子页面
只需修改文本框onfocus=”fnStartInterval(this,’DropDownList2′)”, 设置好相应的参数即可,同时修复了在IE6下div无法遮盖下拉列表的问题,(IE6下无论如何设置select的z-index或div的z-index属性均无济于事),...
- 在div内添加一个`iframe`,设置其`z-index`低于div,用以遮挡select,防止select下拉列表遮盖div内容。 8. **跨域iframe**: - 注意跨域引用的问题,iframe的`src`属性必须指向同源策略允许的地址,否则可能...
使用`div`层作为蒙板时,可能会遇到无法覆盖`<select>`或`<object>`等问题。这是因为这些元素在某些浏览器中具有较高的优先级,可以通过以下几种方式解决: - **使用`iframe`遮盖`<select>`元素** 通过结合使用...
这个问题主要是由于遮罩层的DOM元素生成在body的子级,而弹窗内容的DOM元素可能位于其他div内部,不在同一层级,从而造成了遮罩层的遮挡问题。 解决方案: layer官方文档提到,如果弹层内容是DOM元素,应该将其放置...
10. **IE6常见BUG及解决方法**:包括双边距问题、3像素问题、超链接hover失效、z-index问题、PNG透明问题、min-height问题、select遮盖问题,以及1像素宽度容器问题。 11. **title与alt属性**:`title`用于鼠标悬停...
10. **IE6常见问题及解决方法**:包括双边距BUG、3像素问题、超链接hover失效、z-index问题、PNG透明问题、min-height问题以及select遮盖问题等,这些问题通常需要针对IE6的特性进行特殊处理。 11. **img标签的...
对于IE浏览器的一个特殊问题,`<select>`元素不能被覆盖层遮盖。为了解决这个问题,我们需要在用户触发关机效果时,使用JavaScript将所有`<select>`元素的可见性设为隐藏。 客户端的JavaScript代码通常包括两个部分...
解决方法包括但不限于:双边距BUG可以通过display属性解决,PNG透明问题可以使用JavaScript代码更改,min-height可以通过添加important声明解决,以及select在IE6下遮盖问题可以通过iframe嵌套解决。 doctype声明的...