1

当用户单击几个不同的链接时,我使用以下代码滚动窗口:

$(document).ready(function(){
$("#footerlink").click(function(){
    $("#slide1").slideto({});
});
$("#logo").click(function(){
    $("#slide1").slideto({});
});
$("#home").click(function(){
    $("#slide1").slideto({});
})      
$("#others").click(function(){
    $("#slide2").slideto({});
})
$("#me").click(function(){
    $("#slide3").slideto({});
});
$("#laughs").click(function(){
    $("#slide4").slideto({});
});
})

幻灯片功能来自此脚本:

(function(b) {
b.fn.slideto = function(a) {
    a = b.extend({
        slide_duration: 1000,
        highlight_duration: 3E3,
        highlight: false,
        highlight_color: "#FFFF99"
    }, a);
    return this.each(function() {
        obj = b(this);
        b("body").animate({
            scrollTop: obj.offset().top
        }, a.slide_duration, function() {
            a.highlight && b.ui.version && obj.effect("highlight", {
                color: a.highlight_color
            }, a.highlight_duration)
        })
    })
}
})(jQuery);

我的问题是滚动只适用于 Chrome 而不是 Firefox 或 IE。FF 和 IE 降级很好,所以链接仍然有效,但我真的很喜欢滚动动画。

仅供参考:我用这两行调用 Jquery:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>

这是我的代码的小提琴:http: //jsfiddle.net/LwXR3/

你能帮我找出我的问题吗?

4

1 回答 1

0

好的,这太长了,无法发表评论。你真的应该避免上面代码中的复制粘贴混乱。减去 id 后的代码几乎完全相同。使用 href 来获取位置,而不是对其进行硬编码。

HTML

<a class="slideLinks" href="#foo">go to foo</a>

JavaScript

$(".slideLinks").on("click", function(e){ 
    e.preventDefault(); //p[revent the click
    $(this.hash).slideto({}); //call your slide to function with the hash value for the id
});
于 2012-09-11T18:37:09.413 回答