效果:鼠标移入通过修改background-position-y的值实现背景图位置切换(雪碧图),从而实现一个图片旋转等动画效果
jquery或mouseenter\mouseleave实现
<!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>Dom操作</title>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<style>
*{
padding: 0;
margin: 0;
}
.wrapper{
width: 64px;
height: 64px;
border: 1px solid red;
}
.box{
width: 64px;
height: 64px;
background-image: url(./a.png);
background-repeat: no-repeat;
background-position: 0 0;
background-size: 100%;
}
</style>
</head>
<body>
<div class="wrapper">
<div class="box"></div>
</div>
<script>
$(function() {
$('.box').hover(function() {
var y = parseInt($('.box').css('background-position-y'))
var timer = setInterval(function() {
if(y <= -1280){
clearInterval(timer)
return
}
y -= 64;
$('.box').css('background-position-y', y)
}, 30)
}, function () {
var y = parseInt($('.box').css('background-position-y'))
var timer = setInterval(function() {
if(y >= 0){
clearInterval(timer)
return
}
y += 64;
$('.box').css('background-position-y', y)
}, 30)
})
})
</script>
</body>
</html>