让JQuery自动滚动

时间:2014-04-02 06:04:06

标签: javascript jquery

我设置了以下HTML:

    <div id="minifrontpage-444" class="minifrontpage-tabbed-fade-in-out">
    <div class="minifrontpageid" style="table-layout: fixed; width: 100%; padding: 0px ! important; margin: 0px ! important; height: 154px;">
        <div class="anim">
        <div style="position:relative;" class="anim-div">
                                <div style="padding: 0px ! important; margin: 0px ! important; display: table; width: 100%; position: absolute;" class="animate activex">
                    <div style="display:table-row;width:100%" class="mfp-table-row">
                            <div style="display:table-cell;width:100%;word-wrap:break-word !important" class="mfp-table-cell">
                    <div class="mfp-table-cell-inner">
                    <h2><a href="/devfwdp.co.uk/index.php?option=com_content&amp;view=article&amp;id=42:lorem-ipsum&amp;catid=13:news&amp;Itemid=101">Lorem ipsum</a></h2><br><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec et fermentum massa.
    </p><div class="clrfix"></div>              </div>
                </div>
                        </div>

            </div>                          <div style="padding: 0px ! important; margin: 0px ! important; display: none; width: 100%; position: absolute;" class="animate">
                    <div style="display:table-row;width:100%" class="mfp-table-row">
                            <div style="display:table-cell;width:100%;word-wrap:break-word !important" class="mfp-table-cell">
                    <div class="mfp-table-cell-inner">
                    <h2><a href="/devfwdp.co.uk/index.php?option=com_content&amp;view=article&amp;id=43:lorem-ipsum-2&amp;catid=13:news&amp;Itemid=101">Lorem ipsum (2)</a></h2><br><p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec et fermentum massa.
    </p><div class="clrfix"></div>              </div>
                </div>
                        </div>

            </div>          </div>
        </div>
    </div>
    <div id="mfptabs"><ul><li class="activex"><span>1</span></li><li><span>2</span></li></ul><div class="clr">&nbsp;</div></div>
    </div>

这是一个新闻滚动条,带有&#39; Next&#39;和&#39;以前&#39;按钮。我希望能够让新闻滚动条自动旋转,而目前只有在按下按钮时才能手动旋转。

我有以下jQuery,效果很好:

    jQuery(document).ready(function(){
        jQuery('.minifrontpage-tabbed-fade-in-out').each(function(){
            var theId = jQuery(this).attr('id');

            var mfpElement = jQuery('#'+theId+' .animate');
            var mfpElementLength = mfpElement.length;

            if(mfpElementLength>1){
                var addto = '<ul>';
                for(var i=0;i<mfpElementLength;i++){
                    addto += '<li><span>'+ (i+1) + '</span></li>';
                }
                addto += '</ul>';
                addto += '<div class="clr">&nbsp;</div>';
                jQuery(addto).appendTo('#'+theId+' #mfptabs');
            }

            mfpElement.hide();
            jQuery('#'+theId+' .animate:first').show();
            jQuery('#'+theId+' .animate:first').addClass('activex');
            jQuery('#'+theId+' #mfptabs li:first').addClass('activex');
            mfpElement.css('position','absolute');
            //mfpElement.css('width',mpfAnimateDiv+'%');
            jQuery('#'+theId+' .minifrontpageid').css('height', jQuery('.animate:first').css('height'));

            jQuery('#'+theId+' #mfptabs li').live('click', function(){ 
                var current = jQuery('#'+theId+' #mfptabs li.activex').index();
                var index = jQuery(this).index();
                if( current != index ){
                    jQuery('#'+theId+' #mfptabs li.activex').removeClass('activex');
                    jQuery(this).addClass('activex'); 

                    jQuery('#'+theId+' .minifrontpageid').animate({
                        height: jQuery(mfpElement[index]).css('height')
                    },
                    {
                        step: function(now, fx) {
                            jQuery(mfpElement[current]).fadeOut();
                            jQuery(mfpElement[index]).fadeIn();
                        }
                    });
                }
                return false;
            });
        });
        });

我正在尝试将其设置为自动滚动,因此我尝试使用以下代码,但它无效:

    function tick(){
        $('.animate:first').slideUp( function () { $(this).appendTo($('.animate')).slideDown(); });
    }
    setInterval(function(){ tick () }, 500);

如何将其设置为自动滚动页面加载?

2 个答案:

答案 0 :(得分:1)

使用示例解决此问题。在我的工作中,我只使用3张幻灯片。我创建了一个函数来帮助和调用触发器:

jQuery(document).ready(function(){
jQuery('.minifrontpage-tabbed-fade-in-out').each(function(){
    var theId = jQuery(this).attr('id');

    var mfpElement = jQuery('#'+theId+' .animate');
    var mfpElementLength = mfpElement.length;

    if(mfpElementLength>1){
        var addto = '<ul>';
        for(var i=0;i<mfpElementLength;i++){
            addto += '<li><span>'+ (i+1) + '</span></li>';
        }
        addto += '</ul>';
        addto += '<div class="clr">&nbsp;</div>';
        jQuery(addto).appendTo('#'+theId+' #mfptabs');
    }

    mfpElement.hide();
    jQuery('#'+theId+' .animate:first').show();
    jQuery('#'+theId+' .animate:first').addClass('activex');
    jQuery('#'+theId+' #mfptabs li:first').addClass('activex');
    mfpElement.css('position','absolute');
    //mfpElement.css('width',mpfAnimateDiv+'%');
    jQuery('#'+theId+' .minifrontpageid').css('height', jQuery('.animate:first').css('height'));

    jQuery('#'+theId+' #mfptabs li').live('click', function(){ 
        var current = jQuery('#'+theId+' #mfptabs li.activex').index();

        var index = jQuery(this).index();
        if( current != index ){
            jQuery('#'+theId+' #mfptabs li.activex').removeClass('activex');
            jQuery(this).addClass('activex'); 


            jQuery('#'+theId+' .minifrontpageid').animate({
                height: jQuery(mfpElement[index]).css('height')
            },
            {
                step: function(now, fx) {
                    jQuery(mfpElement[current]).fadeOut();
                    jQuery(mfpElement[index]).fadeIn();
                }
            });
        }
        return false;
    });
});


function teste(par) {

    var current = (par - 1);
    var prox = (par + 1);

    if (current < 0) {
        current = 2;
    }

    if (prox > 2){
        prox = 0;
    }

    var mfpElement = jQuery('#minifrontpage-99 .animate');
    var mfpElementLength = mfpElement.length;

    var liativo = jQuery('#mfptabs li');

    jQuery('#mfptabs li.activex').removeClass('activex');
    jQuery(liativo[par]).addClass('activex'); 

    jQuery('.minifrontpageid').animate({
        height: jQuery(mfpElement[par]).css('height')
    },
    {
        step: function(now, fx) {
            jQuery(mfpElement[current]).fadeOut();
            jQuery(mfpElement[par]).fadeIn();
        }
    });


    setTimeout(function () {teste(prox)}, 3000);
}

setTimeout(function () {teste(1)}, 3000);

});

答案 1 :(得分:0)

如果要将页面滚动到某个点,请使用此选项 (假设您有一个标识为scrollToThis的链接)

    $('html, body').animate({
        scrollTop: $("#scrollToThis").offset().top
    }, 2000);