0

当它达到某个滚动时,我试图将颜色更改为标题。我将此脚本与 jQuery 一起使用:

var $document = jQuery(document),
    $element = jQuery('#header'),
    className = 'red';

$document.scroll(function() {
    $element.toggleClass(className, $document.scrollTop() >= 400);
}); 

这适用于除 IE8 之外的所有浏览器。IE8不支持toggleClass吗?我该如何解决?

任何帮助,将不胜感激。谢谢

jsFiddle: http: //jsfiddle.net/itzuki87/e4XTw/
在 IE 中:http: //jsfiddle.net/itzuki87/e4XTw/show/

4

1 回答 1

2

问题是$(document)在 IE 中读取不同。IE 更喜欢你使用$(window). 您会发现以下内容更加跨浏览器兼容。

$(function() {
    $(window).scroll(function(e) {
        $("#header").toggleClass("red", $(this).scrollTop() >= 400);
    });
})

或使用您的变量类型设置:

jQuery(function() {
    var $window = jQuery(window),
        $element = jQuery("#header"),
        className = "red";

    $window.scroll(function(e) {
        $element.toggleClass(className, jQuery(this).scrollTop() >= 400);
    });
})

请参阅在 IE8 中工作!以及更多(Safari、FF、Chrome、Opera)


使用我较小的HTML

于 2013-09-17T17:46:32.853 回答