1

我有一个带有 6 个缩略图的幻灯片。缩略图具有 CSS 悬停状态。

使用 JQuery,当用户选择缩略图时,我希望保留悬停图像(因此用户知道选择了哪个缩略图)。

当用户点击第二个缩略图时,所有其他缩略图不再有悬停。

$('.thumb').click(function(){
    $(this).css('background-position-y', 'top').siblings(this).css('background-position-y', 'bottom');
});
4

2 回答 2

1

使用小提琴中的用户代码更新


小提琴:http: //jsfiddle.net/RNYwG/1


Javascript:

$(function(){
    $('.thumb').click(function(){
       $('.thumb-hover').removeClass('thumb-hover');
       $(this).addClass('thumb-hover');
    });
});

CSS:

#thumbnails > .thumb{
    background-repeat:no-repeat;
    background-position:0 -92px;
    border: 1px solid #999;
    margin: 10px 0 0 10px;
    padding: 0;
    width: 153px;
    height: 91px;
    float: left;
}
#thumbnails > .thumb-hover, .thumb:hover{
    background-position: 0 0;
    cursor: pointer;
}

HTML:

<div id="thumbnails">
    <div class="thumb" style="background-image:url('images/slideshow/1_thumb.jpg');" onclick="mySwipe.slide(0, 700)"></div>
    <div class="thumb" style="background-image:url('images/slideshow/2_thumb.jpg');" onclick="mySwipe.slide(1, 700)"></div>
    <div class="thumb" style="background-image:url('images/slideshow/3_thumb.jpg');" onclick="mySwipe.slide(2, 700)"></div>
    <div class="thumb" style="background-image:url('images/slideshow/4_thumb.jpg');" onclick="mySwipe.slide(3, 700)"></div>
    <div class="thumb" style="background-image:url('images/slideshow/5_thumb.jpg');" onclick="mySwipe.slide(4, 700)"></div>
    <div class="thumb" style="background-image:url('images/slideshow/6_thumb.jpg');" onclick="mySwipe.slide(5, 700)"></div>
</div>
于 2013-04-06T02:41:27.913 回答
0

在此示例中,缩略图是父级中的兄弟姐妹:

<div>
   <div class="thumb"></div>
   <div class="thumb"></div>
   <div class="thumb"></div>
</div>

$('.thumb').click(function(){
    $(this).addClass('active').siblings().removeClass('active');
});

这意味着您的 CSS 将如下所示:

.thumb{
/*   normal styles */
/*   you can use also CSS3 like: */
/*   transition: 0.2s;    */
}
.thumb.active{
/*    active styles (use !important if needed) */
}
于 2013-04-06T02:40:39.513 回答