开发者社区> 问答> 正文

怎么解决jquery绝对定位元素设置偏移,显示位置不对的问题

在做搜索框,根据输入内容去后台匹配数据显示到输入框下的div里,
一个没定位的input,一个绝对定位的div,获取input的offset直接赋值给div,
结果div在input下面,两个元素的内外边距都用内联方式设置为0了
(这个页面是嵌在父页面dialog的iframe里的,
看起来就好像div的top多加了dialog标题栏的高而input没有,
因为我用top减了标题栏的高之后两个元素基本重叠了,而且单独打开这个页面位置也对。可是offset不是相对文档的偏移吗)
html:
screenshot
js:
screenshot

展开
收起
吴孟桥 2016-05-31 16:41:55 5162 0
1 条回答
写回答
取消 提交回答
  • 不建议用offset,它会叠加。叠加是每次div都会增加divOffset的量。

        function setPosition() {
            var left = $("#input").offset().left;
            var top = $("#input").offset().top;
            var divOffset = { left: left, top: top };
            divOffset.top += $("#input").height(true);
            $("#searchDiv").css(divOffset).show();
        }
    2019-07-17 19:22:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载