Javascript 如何使子div重叠在父容器的顶部
我正在尝试制作一个HTMLLI,让它有一个向左滑动的动画,然后再向右滑动,但是它会在其父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
#外部容器
{
宽度: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