【问题标题】:Jquery Image SwitchjQuery 图像切换
【发布时间】:2009-09-06 14:47:51
【问题描述】:

我正在为我正在构建的网站使用 Jquery 中的图像切换功能。有很多项目,所以我大量压缩了很多这些图像。然而,其中一些看起来不像 .gifs 那样好看,而制作 .jpg 真的才有意义。

我的问题是此代码仅将一个图像交换为另一个名称不同但前缀相似的图像。有没有办法只交换文件的名称,这样如果我有一个 .gif 或 .jpg,就没有关系,因为它只是将名称从 _static 交换为 _rollover?

这是我正在使用的代码:

//Image Switch
$(document).ready(function(){
    $(".projectThumb img").hover(
            function(){
                    var iconName = $(this).attr("src");
                    var origin = iconName.split("_static.")[0];
                    $(this).attr({src: "" + origin + "_rollover.gif"});
            }, 
            function(){
                    var iconName = $(this).attr("src");
                    var origin = iconName.split("_rollover.")[0];
                    $(this).attr({src: "" + origin + "_static.gif"});
            });
});

以及图片切换的 HTML

<div class="projectThumb">
    <img src="/img/mr_button_static.gif" class="button" name="mr">
    <p class="title">Title &ndash; Poster</p>
</div>

要切换的图片名为/img/mr_button_rollover.jpg

谢谢!

【问题讨论】:

    标签: jquery image switch-statement rollover


    【解决方案1】:

    只需使用字符串替换在图像名称中在静态和翻转之间切换。

    //Image Switch
    $(document).ready(function(){
        $(".projectThumb img").hover(
                function(){
                        var iconName = $(this).attr("src");
                        var rollover = iconName.replace( /static/, 'rollover' );
                        $(this).attr({ src: rollover });
                }, 
                function(){
                        var iconName = $(this).attr("src");
                        var static = iconName.replace( /rollover/, 'static' );
                        $(this).attr({ src: static });
                });
    });
    

    如果您可以在图像前缀中静态/翻转,只需在搜索中包含下划线并替换字符串并匹配/替换文件扩展名前的点。

    【讨论】:

    • 这看起来很简单。它适用于所有 .gif 文件,但 .jpg 文件不会切换……这是一个示例……samuelfarfsing.com/columns.php 如果您查看“JPEG SWITCH”那个,那是不会切换的那个……跨度>
    • 翻转图像和静态图像都需要是 GIF 或 JPEG 才能工作。如果您希望能够将 GIF 切换为 JPEG,那么您还需要在标题中添加一些额外的数据,以便能够判断何时更改扩展名。如果您不关心使用标准 HTML,您还可以使用自定义属性来告诉翻转图像应该具有什么扩展名。我会走简单的方向,让它们都是同一类型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2017-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-06
    • 2016-03-24
    相关资源
    最近更新 更多