我经常搜索以获得帮助以回答以下问题:
当我将鼠标悬停在链接上时,我想用jquery更改div的图像 - 背景位置。 在mouseOut上,应保留当前位置。
使用案例:http://jsfiddle.net/c9wN9/1/
我有一个带有四种不同“状态”的精灵图像。 在页面加载时,显示图像状态1(位置0 0)。
通过将鼠标悬停在四个不同的链接(位置0 0/0 0 100/0 200/0 300)上,背景位置应相应更改并保持其在mouseOut上的当前位置。
此外,图像更改可以通过fadeIn / fadeOut进行动画处理,并且可以在链接上显示当前活动位置。 (<a>
上的活跃课程?)
HTML结构:
<div id="background"></div>
<a id="link1" href="#">State 1</a>
<a id="link2"href="#">State 2</a>
<a id="link3"href="#">State 3</a>
<a id="link4"href="#">State 4</a>
CSS
#background {
height: 100px;
width: 100px;
}
的jQuery
?
我用基础知识制作了一个jsfiddle并希望你的jQuery支持: http://jsfiddle.net/c9wN9/1/
非常感谢您提前,
坦率
答案 0 :(得分:0)
我没有包含动画,但这应该完全符合您的要求。
<style>
#background {
height: 100px;
width: 100px;
background-img:('foo.png')}
#background.hover1{background-position:0px 0px}
#background.hover2{background-position:0px 100px}
#background.hover3{background-position:0px 200px}
#background.hover4{background-position:0px 300px}
</style>
<div id="background"></div>
<a id="hover1" class="trigger" href="#">State 1</a>
<a id="hover2" class="trigger" href="#">State 2</a>
<a id="hover3" class="trigger" href="#">State 3</a>
<a id="hover4" class="trigger" href="#">State 4</a>
<script>
$(".trigger").hover(function (){
// get hover class
var hoverClass = $(this).attr('id');
// remove active class from any trigger link
$(".trigger").removeClass('active');
// add active class to current trigger link
$(this).addClass('active');
// add hover class to the background div to shift the background position
$("#background").removeClass().addClass(hoverClass);
});
</script>