我有一个关于点击显示从右到左div的问题。
这是来自jsfiddle的 DEMO 页面。
在此演示中,您可以看到红色背景颜色div(单击以显示信息)。 单击此div时,将打开info div。但它并不适用于左侧。
我怎样才能让它向左开?任何人都可以在这方面帮助我
JS
$(".clickshowinfo").click(function(){
var id = $(this).data("id");
$(".user-info").fadeIn().find(".user-info-in").animate({"right":0}, 200);
});
$(".user-info").click(function(){
$(".user-info-in").animate({"right":"-200px"},200,function(){
$(".user-info").fadeOut();
})
});
$(".cc").click(function(e){
e.stopPropagation();
});
CSS
body{
background-color:#000;
}
.clickshowinfo{
margin:0px auto;
width:150px;
margin-top:10px;
cursor:pointer;
background-color:Red;
}
.global-message-container {
display: block;
position: absolute;
height: auto;
bottom: 0;
top: 0;
left: 0;
right: 0;
max-width: 980px;
min-width:300px;
margin-top: 80px;
margin-bottom: 20px;
margin-right: auto;
margin-left: auto;
background-color: #ffffff;
box-shadow: 0 1px 1px 0 rgba(0,0,0,.06),0 2px 5px 0 rgba(0,0,0,.2);
-webkit-box-shadow: rgba(0, 0, 0, 0.0588235) 0px 1px 1px 0px, rgba(0, 0, 0, 0.2) 0px 2px 5px 0px;
border-radius: 3px;
-webkit-border-radius: 3px;
-o-border-radius: 3px;
-moz-border-radius: 3px;
min-height: 140px;
}
.chat-list-container {
display: block;
position: absolute;
float: left;
width: 30%;
overflow: hidden;
padding: 0px;
bottom: 0;
top: 0;
left: 0;
background-color: #ffffff;
border-right: 1px solid #d8dbdf;
-webkit-border-top-left-radius: 3px;
-webkit-border-bottom-left-radius: 3px;
-moz-border-radius-topleft: 3px;
-moz-border-radius-bottomleft: 3px;
border-top-left-radius: 3px;
border-bottom-left-radius: 3px;
transition: opacity 2s, width 2s, left 2s, font-size 2s, color 2s;
}
.chat-container {
display: block;
position: absolute;
width: 70%;
bottom: 0;
top: 0;
right: 0;
background-color: #f7f9fa;
-webkit-border-top-right-radius: 3px;
-webkit-border-bottom-right-radius: 3px;
-moz-border-radius-topright: 3px;
-moz-border-radius-bottomright: 3px;
border-top-right-radius: 3px;
border-bottom-right-radius: 3px;
}
@media all and (max-width: 640px){
.chat-list-container {
display:none;
}
.secret{
float:left;
display:block;
}
.chat-container{
width:100%;
}
}
.user-info {
display:none;
transform: translateX(0px);
right: 0!important;
left: auto;
-webkit-box-flex: 0;
-webkit-flex: 0 0 auto;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
right: auto;
z-index: 1000!important;
-webkit-align-self: auto!important;
-ms-flex-item-align: auto!important;
align-self: auto!important;
height: 100%;
overflow: hidden;
position: absolute;
width: 30%;
margin: 0;
padding: 0;
border: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
outline: none;
background-color:#dddddd;
}
.user-info-in{
background-color: #dddddd;
width: 100%;
top: 0;
z-index: 1000;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
height: 100%;
overflow: hidden;
position: absolute;
left: 0;
}
.cc{
background-color:blue;
}
答案 0 :(得分:1)
如果我做对了,你想要一个向左滑动的菜单。
我改变了什么:
代码:
$(".clickshowinfo").click(function(){
var id = $(this).data("id");
$(".user-info").animate({width:"30%"}, 200).find(".user-info-in").animate({width:"100%"}, 200);
});
$(".user-info").click(function(){
$(".user-info-in").animate({width:"0%"},200);
$(".user-info").animate({width:"0%"},200);
});
代码完全显示宽度动画,只需点击演示链接
即可div现在是"隐形"因为它没有宽度,但是一旦你点击按钮就会得到一个宽度,它会将自己推离左墙,从而产生所需的动画。
希望能帮到你。如果您需要更多解释或者您想要其他内容,请发表评论。
<强> Demo 强>
答案 1 :(得分:0)
看起来你没有将div(.user-info-in)放在起始位置。
这是更新的小提琴代码 -
.user-info-in{
left:auto;
right: -200px;
}
<强> Updated Fiddle 强>
如果您的意思相同,请告诉我。