首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建议如何形成此jQuery脚本以显示/隐藏淡入淡出元素的指南

问建议如何形成此jQuery脚本以显示/隐藏淡入淡出元素的指南
EN

Stack Overflow用户
提问于 2010-12-28 00:14:54
回答 1查看 396关注 0票数 0

我基本上在屏幕的左边有几个链接,右边是一个预览窗口。预览窗口下方是用于代销商链接代码的另一个框。所以我正在尝试做的是创建一个联属页面,在那里您可以通过单击链接在左侧选择横幅大小,在右侧您可以看到它动态地更改为横幅大小,代码也会相应地更改。到目前为止,我有以下代码,它可以工作,但它似乎非常繁琐和臃肿。你能看看我能不能把这个修剪一下?

代码语言:javascript
复制
jQuery(".banner-style li").click(function() {
    jQuery(".banner-style li").removeClass("selected");
    jQuery(this).addClass("selected");
    var $banner = jQuery(this).attr("class");
    $banner = $banner.replace(" selected","");
    jQuery(".preview img").fadeOut('fast',function() { 
                       jQuery(".preview img").attr("src",
                       "http://localhost/site/banners/"+$banner+".jpg")
                       .fadeIn('slow');
            });
    jQuery(".code p").removeClass('hide').hide();
    jQuery(".code p."+$banner).show();
});

另外,有趣的是,在FF中,当你点击任何链接的第一个to时,右边的原始图像会很快淡出和淡入,然后它会加载“点击”的图像。这在其他浏览器中不会发生...

EN

回答 1

Stack Overflow用户

发布于 2010-12-28 02:35:39

你可以改变:

代码语言:javascript
复制
jQuery(this).addClass("selected");
var $banner = jQuery(this).attr("class");
$banner = $banner.replace(" selected",""); 

进入:

代码语言:javascript
复制
var $banner = jQuery(this).attr("class");
jQuery(this).addClass("selected");

通过改变行的顺序并删除一行,在添加"selected“类之后就会创建$banner,这样就避免了一行。

在此集合中,您可以选择已经选择的内容:

代码语言:javascript
复制
jQuery(".preview img").fadeOut('fast',function() {
    jQuery(".preview img").attr("src",
    "http://localhost/site/banners/"+$banner+".jpg")
    .fadeIn('slow');
});

也许更好的方法是:

代码语言:javascript
复制
jQuery(".preview img").fadeOut('fast',function() {
    jQuery(this).attr("src",
    "http://localhost/site/banners/"+$banner+".jpg")
    .fadeIn('slow');
});

修改后的:

代码语言:javascript
复制
jQuery(".banner-style li").click(function() {
  jQuery(".banner-style li").removeClass("selected");
  var $banner = jQuery(this).attr("class");
  jQuery(this).addClass("selected");
  jQuery(".preview img").fadeOut('fast',function() {
        jQuery(this).attr("src",
        "http://localhost/site/banners/"+$banner+".jpg")
        .fadeIn('slow');
  });
  jQuery(".code p").removeClass('hide').hide();
  jQuery(".code p."+$banner).show();
});

编辑:关于FF的问题,我必须看到标记Css,但这一行对我来说似乎“奇怪”:

代码语言:javascript
复制
jQuery(".code p").removeClass('hide').hide();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4540016

复制
相关文章

相似问题

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