Javascript 如何使子div重叠在父容器的顶部

Javascript 如何使子div重叠在父容器的顶部,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在尝试制作一个HTMLLI,让它有一个向左滑动的动画,然后再向右滑动,但是它会在其父div容器的顶部重叠 现在我只想制作向左滑动的动画 #外部容器 { 宽度:200px; 高度:200px; 背景颜色:蓝色; } #容器 { 宽度:100px; 高度:200px; 背景颜色:绿色; 溢出y:滚动; } a{ 左:0px; 位置:相对位置; 背景色:红色; 过渡:所有0.3秒的缓进缓出; } a:悬停{ 左边距:-50px; } a:之后,a:之前{ 内容:“; 位置:绝对位置; 宽度:1

我正在尝试制作一个HTMLLI,让它有一个向左滑动的动画,然后再向右滑动,但是它会在其父div容器的顶部重叠

现在我只想制作向左滑动的动画

#外部容器
{
宽度:200px;
高度:200px;
背景颜色:蓝色;
}
#容器
{
宽度:100px;
高度:200px;
背景颜色:绿色;
溢出y:滚动;
}
a{
左:0px;
位置:相对位置;
背景色:红色;
过渡:所有0.3秒的缓进缓出;
}
a:悬停{
左边距:-50px;
}
a:之后,a:之前{
内容:“;
位置:绝对位置;
宽度:10px;
身高:50%;
左:100%;
}
a:以后{
底部:0;
背景:线性渐变(至右下角,红色50%,透明50%);
}
a:以前{
排名:0;
背景:线性渐变(至右上方,红色50%,透明50%);
}

  • adfsafas11111d
  • adfsafas11111d
  • adfsafas11111d
  • adfsafas11111d
  • adfsafas11111d
  • ADFSAFAS1111D
  • ADFSAFAS11111D
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd

文本使用
左边距向左滑动,因此您需要调整它

a:hover {
  margin-left: -35px;
}
你在找这个吗

#外部容器
{
宽度:200px;
高度:200px;
背景颜色:蓝色;
位置:相对位置;
填充:15px;
}
#容器
{
宽度:100%;
高度:200px;
背景颜色:绿色;
溢出y:滚动;
}
a{
左:0px;
位置:相对位置;
背景色:红色;
过渡:所有0.3秒的缓进缓出;
}
a:悬停{
左边距:-30px;
}
a:之后,a:之前{
内容:“;
位置:绝对位置;
宽度:10px;
身高:50%;
左:100%;
}
a:以后{
底部:0;
背景:线性渐变(至右下角,红色50%,透明50%);
}
a:以前{
排名:0;
背景:线性渐变(至右上方,红色50%,透明50%);
}

  • adfsafas11111d
  • adfsafas11111d
  • adfsafas11111d
  • adfsafas11111d
  • adfsafas11111d
  • ADFSAFAS1111D
  • ADFSAFAS11111D
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd
  • adfsafasd

请检查您的需求是否得到满足

#outer-container
{
  min-width:400px;
  min-height:200px;
  background-color:blue;  
}

#container
{
  width:200px;
  min-height:200px;
  background-color:green;
  /* overflow-y:scroll; */
}
a{
  left: 0px;
  position: relative;
  background-color:red;
  transition:all 0.3s ease-in-out;
}

a:hover {
  margin-left: -30px;
}

a:after, a:before{
    content:"";
    position:absolute;
    width:10px;
    height:50%;
    left:100%;
}
a:after{
    bottom:0;
    background: linear-gradient(to right bottom, red 50%, transparent 50%);
}
a:before{
      top:0;
    background: linear-gradient(to right top, red 50%, transparent 50%);
}

最后我自己做了一个,它仍然有些奇怪

调用TransitionEvent()的函数{ var t, el=document.createElement(“fakeelement”); 变量转换={ “transition”:“transitionend”, “OTransition”:“oTransitionEnd”, “MozTransition”:“transitionend”, “WebKittTransition”:“WebKittTransitionEnd” } for(t在过渡中){ 如果(el.style[t]!==未定义){ 返回转换[t]; } } } $(文档).ready(函数(){ var conX=$(“#容器”).position().left; var conWidth=$(“#container”).width()+parseInt($(“#container”).css('padding-left'),10); var padleft=parseInt($(“ul”).css('padding-left'),10); 变量箭头宽度=10 $(“a”).mouseenter(函数(){ if($(this.css('position')=='absolute'){ //什么也不做,因为它可能试图恢复到相对状态 返回; } var myButton=$(此) var width=$(this.width(); var x=$(this).position().left; 变量needToMove=((conX+conWidth)-(x+width+arrowWidth)) $(this.css(“左”,needToMove+“px”) var transitionEvent=whichTransitionEvent(); $(此)。一(transitionEvent, 功能(事件){ 如果(event.originalEvent.elapsedTime==0.3){ $(this.addClass('nottransition'); $(this.css)({ top:$(this).offset().top+'px', 左:$(this).offset().left+'px', 宽度:$(this).width()+'px', 高度:$(this).height()+'px', 位置:'绝对' }); var-ablock=$(此值); //在$(this).css完成应用后,在上找不到正确的触发器 setTimeout(函数(){ ablock.removeClass('nottransition'); css(“左”,padleft+conX+“px”) }, 10); } }); }) $(“a”).mouseleave(函数(){ if($(this.css('position')=='absolute'){ //将绝对值移回相对值 //从绝对到左的过渡 var width=$(this.width(); 变量needToMove=((conX+conWidth)-width-arrowWidth) $(this.css(“左”,needToMove+“px”) var transitionEvent=whichTransitionEvent(); $(此)。一(transitionEvent, 功能(事件){ $(this.addClass('nottransition'); var x=$(this).position().left; 变量needToMove=(conWidth-(padleft+width+arrowWidth)) $(this.css)({ 顶部:“0px”, 左:需要移动+px, 宽度:$(this).width()+'px', 高度:$(this).height()+'px', 位置:'相对' }); //“完成”转换回相对后向右移动 var-ablock=$(此值); setTimeout(函数(){ ablock.removeClass('nottransition'); css(“左”,“0px”) }, 10); }) }否则{ //如果它仍处于相对状态,请将其移回原位 $(this.css(“左”,0) } }) });
#外部容器{
宽度:200px;
高度:200px;
背景颜色:蓝色;
}
#容器{
宽度:100px;
高度:200px;
背景颜色:绿色;
溢出y:滚动;
}
a{
左:0px;
位置:相对位置;
背景色:红色;
过渡:所有0.3秒的缓进缓出;
}
a:之后,
a:以前{
内容:“;
位置:绝对位置;
宽度:10