首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改鼠标上方的div背景图像&单击另一个位置

更改鼠标上方的div背景图像&单击另一个位置
EN

Stack Overflow用户
提问于 2012-06-06 13:45:22
回答 2查看 2.1K关注 0票数 0

我目前正试图悬停在背景图像上,并在一个单独的div中看到一个新的图像。这是有效的(与下面的代码),但我似乎无法让它改变时,该图像被点击。下面的图片代表了我想要完成的任务。

1个http://pkg.madisonmottdev.com/images/1.png

当悬停或点击时(二楼相同) 2个http://pkg.madisonmottdev.com/images/2.png

当前用于悬停的Javascript代码,它正常工作。我只是不知道如何点击(一楼或二楼,并让它在右边改变)。任何帮助都是非常感谢的。

代码语言:javascript
复制
 $(window).load(function(){
        $(document).ready(function(){
            // FIRST FLOOR
            $('.floor1').mouseover(function(){
                $('.floor1').css('background', 'url("images/phase-2/first-floor-hover.a.png") no-repeat');
                $('#elevation').css('background', 'url("images/phase-2/first-floor-lg.a.png") no-repeat');
            });
            $('.floor1').mouseout(function(){
                $('.floor1').css('background', 'url("images/phase-2/first-floor.a.png") no-repeat');
                $('#elevation').css('background', 'url("images/phase-2/elevation.a.png") no-repeat');
            });

             // SECOND FLOOR
            $('.floor2').mouseover(function(){
                $('.floor2').css('background', 'url("images/phase-2/second-floor-hover.a.png") no-repeat');
                $('#elevation').css('background', 'url("images/phase-2/second-floor-lg.a.png") no-repeat');
            });
            $('.floor2').mouseout(function(){
                $('.floor2').css('background', 'url("images/phase-2/second-floor.a.png") no-repeat');
                $('#elevation').css('background', 'url("images/phase-2/elevation.a.png") no-repeat');
            });

        });
    });  

HTML代码(floor1、floor2和高程设置为具有高度/宽度的背景图像):

代码语言:javascript
复制
        <div id="building">
                <div id="floor">
                  <div class="floor1"></div>
                </div>

                <div id="floor">
                  <div class="floor2"></div>
                </div>
        </div>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-06 14:48:43

你想要的是这种东西吗?

http://jsfiddle.net/98wuW/19/

诀窍是,如果您单击了floor1,那么floor1.mouseout就不能删除#海拔中的floor1图像。

就目前情况而言,您可以使用floor1.mouseout将#海拔的背景图像更改为默认值。因此,假设您在floor1上空盘旋。然后将鼠标移离floor1。接着,floor1.mouseout将#海拔的背景图像设置为默认值。

诀窍是,当您单击floor1时,您必须设置一个标志或其他东西,上面写着“将floor1图像保持在#海拔”。然后,在鼠标中,您可以检查该标志,看看是否可以删除地面图像中的#高程。

你的例子有点棘手,因为你有两层楼,两层都可以点击,所以你必须检查每个鼠标的两个标志。

票数 2
EN

Stack Overflow用户

发布于 2012-06-06 14:10:35

单击时不会发生任何事情,因为没有任何侦听器绑定到click事件。

尝试将代码的一部分更改为:

代码语言:javascript
复制
    // FIRST FLOOR
    $('.floor1').click(function(){
        $('.floor1').css('background', 'url("images/phase-2/first-floor-hover.a.png") no-repeat');
        $('#elevation').css('background', 'url("images/phase-2/first-floor-lg.a.png") no-repeat');
    });
    $('.floor1').mouseout(function(){
        $('.floor1').css('background', 'url("images/phase-2/first-floor.a.png") no-repeat');
        $('#elevation').css('background', 'url("images/phase-2/elevation.a.png") no-repeat');
    });

您将看到行为上的差异--我已经从mouseover事件变成了click事件。

可以将多个事件绑定到相同的侦听器,如下所示:

$('.floor1').bind('click mouseover', function() {...});

编辑

按照你最后的评论,看看这个小提琴,以达到你想要的目的:

http://jsfiddle.net/BzPdB/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10915481

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档