onclick不会滚动身体

时间:2013-05-14 22:09:02

标签: javascript jquery html

出于某种原因,我真的需要保持这个onclick,但我不能让它做我想要的。 如果点击上一个徽标,我想要的是将身体滑动到下一个徽标。

它看起来像这样:

<div class="logos">
    <div class="logo" id="logo1"><a href="javascript:// something" onclick="slide()"><img src="..."></a></div>
    <div class="logo" id="logo2"><a href="javascript:// something" onclick="slide()"><img src="..."></a></div>
    <div class="logo" id="logo3"><a href="javascript:// something" onclick="slide()"><img src="..."></a></div>
</div>

然后:

function slide() {

    var ind = $(this).closest('.logo').index();
    var $logos = $('.logo');
    var $next = $logos.eq(++ind);

    var timer_slide = window.setTimeout(start_slide, 300);

    function start_slide() {

            if ($next.length) {
                var where = $next.offset().top;
            } else {
                var where = $logos.filter(":first").offset().top;
            }
            $('body, html').animate({
                scrollTop: where
            })

    }

}

/////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////////

如果我这样做,它可以工作:

<div class="logos">
    <div class="logo" id="logo1"><a href="javascript:// something"><img src="..."></a></div>
    <div class="logo" id="logo2"><a href="javascript:// something"><img src="..."></a></div>
    <div class="logo" id="logo3"><a href="javascript:// something"><img src="..."></a></div>
</div>

 $("#logo1").click(function(){

        var ind = $(this).closest('.logo').index();
        var $logos = $('.logo');
        var $next = $logos.eq(++ind);

        var timer_slide = window.setTimeout(start_slide, 300);

        function start_slide() {

                if ($next.length) {
                    var where = $next.offset().top;
                } else {
                    var where = $logos.filter(":first").offset().top;
                }
                $('body, html').animate({
                    scrollTop: where
                })

        }

    });

我不能使用有效的原因是因为一切都是从主html控制的,而我所有的其他外部按钮都是用onclick =“...”完成的,到目前为止效果还不错。

如果有人知道如何使用此滑块使onclick工作,我会很感激。

非常感谢。

1 个答案:

答案 0 :(得分:0)

努力寻找答案。
以下是代码的网址:http://fiddle.jshell.net/zepyp/
只需单击第一个图像,它就会动画自动滚动到第一个徽标,在第二个图像上单击它会自动滚动到第二个徽标,就像第三个图像一样。