jQuery页面fadeIn()仅适用于索引页面

时间:2011-08-22 21:44:51

标签: javascript jquery fadein

谢谢大家,快速帮助!脚本现在有效。我已经更新了以下网站和代码。也许有人可以发现这个代码很有用。 :)


我已经根据需要使用jQuery使页面(http://www.katmcgo.com)淡入。但是,它只会在索引页面上淡入 - 所有后续页面都正常加载。

我在每个页面的标题中都有以下脚本(包括未淡入的子页面);它使用PHP包含在每个页面中:

$(document).ready(function() { 
        function fadePage() {
            // Target the tags you want to effect with the fade
            var fadingTag = "section";
            var fadingTag2 = "hr";

            var delay = 0;  // Initialize delay - Should start at 0
            var delayStagger = 600;  // Delay stagger - Time between elements fading in

            var fadingNum = document.getElementsByTagName(fadingTag).length;  // Find out how many elements you need to hide

            // Get and fix the overall document height before it disappears (which will happen when elements are hidden) 
            var pageHeight = $(document).height() + "px";
            $("#wrapper").css("height", pageHeight);

            // Hide all targeted tags
            $(fadingTag).css("display", "none");
            $(fadingTag2).css("display", "none");

            // Fade each targeted tag in, one by one
            for (var i = 0; i < fadingNum; i++){

                $($(fadingTag).get(i)).delay(delay).fadeIn(delayStagger);
                $($(fadingTag2).get(i)).delay(delay).fadeIn(delayStagger);

                delay += 350;
            }
        }

        fadePage();
    });

我一直绞尽脑汁想知道为什么会发生这种情况,然后进行搜索以找到答案,但却什么都没有......

这个页面还处于早期阶段,所以我只是在Firefox和Safari中做dev ...在两者中都有淡出效果,但只在第一页上有效。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

在firefox中安装firebug。你在除index.php之外的所有页面上获得一个未定义的元素[0]。

编辑:

将s3Slider调用包装在if语句中,检查元素是否存在。

if( $('#slider').length ) {
  $('#slider').s3Slider({
    timeOut: 3500
  });
}

如果您不在索引页面上,则无法从服务器输出该代码。

答案 1 :(得分:0)

您在所有后续页面上都有来自s3Slider.js的错误。可能是因为这些页面上不存在滑块元素,但插件仍然被调用。

淡入淡出脚本可能正常。