1

我有一个带有css 位置的列表 (a div) 。inline-block里面有一个隐藏的relative定位。ul所以我尝试absolute通过添加一些类来将这个 div 转换为。通常,当我们单击列表时,列表会显示出来。它适用于除IE8/9以外的其他浏览器。

我谷歌“即绝对定位元素消失”并尝试了他们的解决方案,但没有运气。

这是您可以进行测试的地方:http: //jautochecklist.googlecode.com/svn/doc/test_popup.html

您可以保存 (Ctrl+S) 页面并编辑要测试的脚本。

位置的转换从第 956 行 (jAutochecklist.js) 开始。wrapper是我要移动的元素

if (data.settings.absolutePosition){
            var offset = wrapper.offset();
            var dummy = $('<div></div>').attr('class', pluginName + '_dummy ' + pluginName + '_wrapper').width(wrapper.width()).height(wrapper.height());
            obj.after(dummy);
            //move the list so the absolute position can become effective
            wrapper.addClass(pluginName + '_absolute').appendTo('body').css({
                top: offset.top + 3,
                left: offset.left
            });
            elements.input.focus();
        }

此外,当我们在列表打开/聚焦时关闭弹出窗口时,在 IE 中,列表保留在屏幕上。

小提琴:http: //jsbin.com/anokod/1/edit

4

2 回答 2

1

filter我通过删除具有绝对位置的包装器上的 css 样式来解决问题。

在 IE 中,当有 2 个属性filter:progid:DXImageTransform.Microsoft.gradient...应用于同一个定位元素时,会导致此错误。

于 2013-05-29T21:13:07.640 回答
0

在样式 jAutochecklist_wrapper 中删除高度:20px

于 2013-05-29T20:33:03.187 回答