<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
*{margin: 0;padding: 0;}
.box{width: 100px;height: 200px;background: teal;position: absolute;top: 200px;cursor: pointer;left: -100px;}
.box span{display: inline-block;width: 30px;height: 100px;background: tomato;text-align: center;
line-height: 34px;color: #fff;position: absolute;left: 100px;top: 50px;}
</style>
</head>
<body>
<div class="box">
<span>分享到</span>
</div>
<script>
var oBox = document.getElementsByClassName("box")[0];
var timer = null;
//鼠标移入时显示出来
oBox.onmouseover = function (){
//开启定时器之前先把原来的定时器关闭,这样就不会造成定时器叠加
clearInterval(timer);
//初始化left的值是-100px,当盒子完全恰好出来是的left值为0
timer = setInterval(function(){
//当盒子的left的值大于等于0时说明盒子已经完全出来了,关闭定时器
if(oBox.offsetLeft >= 0){
clearInterval(timer);
}else{
oBox.style.left = oBox.offsetLeft+10+"px";
}
},100);
}
//鼠标移开时收回去
oBox.onmouseout = function(){
//开启定时器之前先把原来的定时器关闭,这样就不会造成定时器叠加
clearInterval(timer);
//初始化left的值是-100px盒子收起,当盒子完全恰好出来是的left值为0
timer = setInterval(function(){
if(oBox.offsetLeft <= -100){
clearInterval(timer);
}else{
oBox.style.left = oBox.offsetLeft-10+"px";
}
},100);
}
</script>
</body>
</html>
运行看效果