欢迎光临SEO网站目录!
当前位置:SEO网站目录 » 站长资讯 » 网站运营 » 文章详细 订阅RssFeed

Position为absolute的div或dropdown menu在设置了overflow的div中显示不完全(cropped)

来源:互联网 浏览:1322次 时间:2022-06-25
Three methods to solve: 三种方法

1. 假设你要将div4(absolute postion) 根据div3定位,但是显示区域会超过div1。而div1却有overflow,若没有div2,那么div4会显示不完全。
解决方案:在有overflow的div1和定位参考的div3之间,多加一层div2,使其position为absolute。但注意的是,这时div1不能有position:relative,否则div4还是会显示不完全。为了让div2显示的位置正确,可通过设置div1的padding属性来调整。

#div1 { overflow: hidden }
#div2 { position: absolute }
#div3 { position: relative }
#div4 { position: absolute }
<div id="div1">
<div id="div2">
<div id="div3">
<div id="div4"/>
</div>
</div>
</div>

2. 若需要absolute定位的div是根据有overflow的那个div来定位的,如下面的div2和div1,那么div2也会被cropped。

#div1 { overflow: auto; position: relative;}
#div2 { position: absolute}


<div id="div1">
<div id="div2"/>
</div>

解决方案:在有overflow的div外加一层div,使其大小根据div1变化,但是将relative position换到这个多加的div中,使div2直接根据div1-wrap定位,这样就不会被cropped了。


#div1-wrap {position:relative; height:auto; width:auto;}
#div1 { overflow: auto}
#div2 { position: absolute}
<div id="div1-wrap">
<div id="div1">
<div id="div2"/>
</div>
</div>


3. 最后一种方法我个人觉得是比较稳妥的(因为发现前两种方法在滚动div内不会随着滚动),也就是当需要该div出现时,用js实时定位其所在的位置。
像在下面的代码里,我有一个可滚动的列表,列表里有多个行(可动态添加和删除),每行内有个图标,点击该图标会出现一个紧挨着它的下拉菜单。之前用了方法1,后发现在列表末端(即需要滚动才能看得到的)行的下拉菜单会显示到很下面,且不会随着列表滚动而滚动。这里,$(ele)为图标元素,当点击该图标后,js实施获取其元素位置,然后根据该位置来定位下拉菜单的位置。



不过需要注意的是,获取元素位置有两种方式。一种是offset(),它获取的是元素在视窗内的位置,与页面内其他元素无关。例如offset().top获取的就是该元素到你浏览器显示范围的顶端的距离,注意,不是到页面顶端的距离。所以说当你的整个页面有滚动时,即使该元素在整个页面中的位置不变时,返回的值也会不同。另一种是position(),它返回的是相对父元素(有position:relative)的位置。在下面的例子当中,我将最顶层的整个大页面设置了position:relative,这样获取到的图标位置就是相对整个页面内的位置了。由于在最顶层页面和下拉菜单之间不存在别的position:relative的元素,下拉菜单也是相对这个最顶层页面定位的。因此可以正确定位,且不会被cropped。

var itop = $(ele) .position() . top;
var ileft = $(ele) .position() .left;
var utop = itop + 20;
var uleft = ileft 一115;
var $dropdownMenu = addTeamDropdownMenu() ;
$ ($d ropdownMenu) . css({"top" :utop+"px" ,"left" :uleft+"px"});
$(ele). parent() . append ( $d ropdownMenu) ;


最新点入

  • 山东欣烨化工山东欣烨化工

    山东欣烨化工是一家集科研,生产,销售医药中间体,农药中间体,橡塑助剂,阻燃剂,酚醛树脂于一体的综合性化工企业。。采用轻资产的发展路线,采用参股、租赁工厂,或者代加工的发展模式。 在东营广饶丁庄镇、淄博淄川罗村镇、淄博齐鲁化工园纬六路、潍坊市滨海经济开发区临港路工业园建有生产工厂,德州市禹城化工园。 公司技术力量雄厚,拥有完善的产品检测手段和质量保证体系,密切关注着国内外科研和生产动态,并与山东大学化工学院合作,不断开发和研发新产品,以满足客户的不同需求。

    www.sdxinyechem.cn
  • 济南欣烨生物济南欣烨生物

    现公司主导产品有:生物制药系列,医药中间体,化学溶剂系列,阻燃剂系列,化学试剂系列,颜料燃料系列,橡胶塑料系列,酚醛树脂等系列产品。

    www.sdkaikai.cn
  • 阳光游戏阳光游戏

    阳光游戏网为玩家提供新的网络游戏,单机游戏,手机游戏,手游等资源,经过多年努力已成为游戏玩家首要选择的游戏资讯、游戏资源网站。

    www.shiciwang.com.cn
  • 山东欣烨生物山东欣烨生物

    山东欣烨生物是一家集科研,生产,销售医药中间体,农药中间体,橡塑助剂,阻燃剂,酚醛树脂于一体的综合性化工企业。

    www.sdxinyekeji.cn
  • 站长交易平台站长交易平台

    2898站长资源平台作为站长资源交换平台,致力于为广大站长和网站运营人员提供最方便、最快捷的站长资讯、站长交易、链接交易、链接交换、资源交换等服务。

    www.2898.com

推荐站点

  • OpenClawOpenClaw

    OpenClaw(曾用名:Clawdbot、Moltbot)一款可以部署在个人电脑上的AI代理,采用“龙虾”图标设计,slogan是“The AI that actually does things”,由程序员彼得·斯坦伯格开发。当OpenClaw部署在本地电脑并获得相应权限后,可以直接访问系统。通过部署多台电脑和多个智能体,可以实现自动化处理邮件、阅读文档、编写代码、发布社交媒体内容等工作。OpenClaw爆火后,腾讯云、阿里云、京东云、火山引擎、百度智能云等相继宣布上线OpenClaw云端极简部署及全套云服务,用户可一键完成安装。2026年2月,OpenClaw创始人加入OpenAI,OpenClaw以基金会形式作为开源项目存续。

    https://openclaw.ai/
  • 笔格AiPPT笔格AiPPT

    笔格PPT是一款专注于PPT制作的生产力工具,由成都刻尚科技有限公司开发。其核心功能围绕AI智能技术,能极大地提高用户制作PPT的效率和质量。产品定位为满足各类人群在不同场景下对PPT制作的需求,无论是商务人士的工作总结、教育工作者的教学课件,还是学生的毕业答辩等都能适用。产品的主要优点在于利用AI技术简化了传统PPT制作流程,节省了时间,且提供了海量免费的优质模板供用户选择。从价格上看,根据文档中提到的使用次数相关信息,可能存在免费试用以及后续付费使用不同套餐的情况。

    https://bigppt.cn/
  • 麦当秀MindShow麦当秀MindShow

    MINDSHOW麦当秀是一款基于AI技术的在线PPT生成工具。其诞生背景是为了满足用户快速、高效制作专业PPT的需求,降低制作门槛,让非专业设计人员也能轻松制作出高质量的演示文稿。产品定位为企业级和个人用户提供高效的PPT制作解决方案。优点显著,它能大幅节省设计和排版时间,提升工作效率;无需设计经验,操作简单便捷;支持多语言,便于跨文化交流展示。目前文档未提及价格相关信息。

    https://www.mindshow.vip
  • 腾讯会议AI小助手腾讯会议AI小助手

    腾讯会议AI小助手Pro是腾讯基于最新混元千亿参数大模型推出的全能会议助手。其重要性在于显著提高会议效率,让用户释放更多精力专注于决策。主要优点包括可联网检索、实时整理会议内容、生成内容、智能提醒、查询总结文件等。产品定位是为各类会议场景提供智能化支持,助力企业提升会议管理水平和决策效率。页面未提及产品价格。

    https://meeting.tencent.com/ai/
  • 飞书妙记飞书妙记

    飞书妙记是新一代的智能会议工具,在线生成会议纪要,主打智能语音识别转文字功能,可快捷转录视频音频,将会议交流沉淀为知识,让会议更专注、更高效。它适用于需要进行会议记录、信息整理和知识沉淀的各类场景,如企业会议、培训、访谈等。背景上,随着远程办公和线上协作的需求增加,高效的会议记录和知识共享工具变得尤为重要,飞书妙记应运而生。价格方面暂未提及,定位为提升会议效率和知识管理的智能工具。其主要优点包括准确识别语音、结构化呈现内容、支持多格式导出和分享等。

    https://www.feishu.cn/product/minutes