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

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

来源:互联网 浏览:1338次 时间: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.sdyueqian.cn
  • 山东欣烨化工山东欣烨化工

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

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

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

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

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

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

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

    www.sdxinyekeji.cn

推荐站点

  • 一起剪 - AI视频创作智能体[免费]一起剪 - AI视频创作智能体[免费]

    一起剪是全球首个免费AI视频创作智能体,是一款强大的在线视频剪辑工具。其重要性在于为自媒体和媒体生产者提供了便捷、高效的视频制作解决方案。主要优点包括具备海量素材库、精美视频模板,可实现视频云端自动合成、一键发布等功能,能够帮助用户零成本制作视频并多渠道快速传播。产品背景上,它提供了一系列先进的AI技术来支持视频创作。价格方面,是免费使用的。定位是面向广大需要进行视频创作的人群,无论是专业的媒体工作者还是普通的自媒体创作者,都能借助它轻松完成视频制作。

    https://www.yiqijian.com/
  • 奇妙元 - 数字人奇妙元 - 数字人

    奇妙元是一站式数字人视频制作和直播平台,重要性在于为用户简化数字人内容创作流程。其主要优点包括一站式服务,涵盖从AI写作、AI绘画、AI配音到数字人视频制作的全流程;提供多种数字形象克隆方案,满足不同需求;告别真人录制,提高创作效率。产品背景是为适应数字内容创作的需求而开发。价格信息未提及,定位是为行业客户和有数字人内容创作需求的用户提供服务。

    https://weta365.com/
  • 快剪辑快剪辑

    快剪辑SaaS是国内领先的视频剪辑软件,具有强大的云端剪辑能力。该软件支持在线去水印、录屏、录音等多种功能,拥有海量版权视频模板、音乐、特效和贴纸,适用于个人和中小企业定制。产品定位为降低视频剪辑门槛,让用户无需专业剪辑基础就能实现创作自由。价格方面未提及,从页面信息推测可能有免费试用或部分功能免费,部分功能付费的模式。其主要优点包括:操作便捷,依托云端无需复杂安装;功能丰富,满足各种视频创作需求;素材多样,商用更安心。

    https://www.kuaijianji.com/
  • 闪剪闪剪

    闪剪是国内领先的AI数字人口播视频在线创作平台,拥有移动端APP版本。其核心功能是利用AI技术自动创作文案并一键生成数字人视频,用户可输入关键词,平台就能迅速完成视频创作。此外,还支持在线定制专属数字人形象及声音。 该平台的重要性在于为企业和个人提供了高效、便捷的视频创作解决方案,降低了视频制作的门槛和成本。其主要优点包括丰富的数字人视频模板、200 + 国际化数字人模特、24 + 国家AI配音、AI文案创作、智能成片等功能,能帮助企业团队轻松实现矩阵营销引流,降本增效。目前暂未提及价格相关信息,其定位是为有视频创作需求的企业和自媒体人提供服务。

    https://shanjian.tv/
  • Capsule - 由AI驱动的视频编辑器Capsule - 由AI驱动的视频编辑器

    Capsule是一款由AI驱动的视频编辑器,专为内容和营销团队设计。其重要性在于能极大提升视频创作的效率与质量。主要优点包括:10倍速创建视频,让创作效率显著提升;支持无缝协作,使团队成员能高效沟通合作;通过运动设计系统确保品牌一致性。产品背景方面,它获得了顶级AI和未来工作投资者的支持。价格方面提供免费注册,也可获取演示和查看定价信息。定位是服务企业团队,不仅面向专业编辑人员,让每个员工都能成为视频创作者。[国内限制访问]

    https://capsule.video/