Whatsapp活动聊天列表项动画

时间:2018-10-09 19:55:04

标签: javascript css animation

我想知道是否有一种类似于Whatsapp的简单动画制作方法。

当您在聊天屏幕上并返回到聊天列表时,活动元素会暂时突出显示为灰色(这样它会显示之前打开过的聊天)。

在JS或CSS中是否没有复杂的方法?希望你们大多数人都知道我在说什么。不幸的是,在网上找不到任何示例...

1 个答案:

答案 0 :(得分:1)

这是一个如何实现效果的示例,但是由于您的项目没有更多细节,我无法做更多的事情。

var li = $('li');
var messages = $('.messages');
var close = $('.close');

li.on('click', function(){
  $(this).addClass('active');
  messages.addClass('active');
});

close.on('click', function(){
  messages.removeClass('active');
  li.removeClass('active');
});
html,
body {
  margin: 0;
  padding: 0;
  font-family: sans-serif;
}

.info {
  margin-bottom: 20px;
  padding-left: 15px;
}

ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

li {
  background: #ececec;
  padding: 10px;
  border-bottom: 2px solid black;
  cursor: pointer;
  transition: background .2s .3s;
}


li.active {
  background: gray;
  transition: background .3s;
  
}

.messages {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: white;
  transition: transform .3s;
  transform: translateX(100%);
  padding: 20px;
}

.messages.active {
  transform: translateX(0);
}

.close {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  position: absolute;
  right: 70px;
  top: 30px;
  background: black;
  color: white;
  border-radius: 50%;
  font-size: 20px;
  cursor: pointer;
}

.close:hover {
  opacity: .7;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="info" >Click on a person, and close the discussion by clicking on the "X" to see the effect.</p>

<ul>
  <li>Bob</li>
  <li>Steven</li>
  <li>Marie</li>
  <li>Marc</li>
  <li>Jack</li>
  <li>Edouardo</li>
</ul>

<div class="messages">
  A lot of messages bla bla ...
  
  ...
  
  <span class="close">X</span>
</div>