Jq页面滚动加载

jq共用部分几乎不用修改

<script>
    //options.load:方法,加载的过程
    //options.marginBottom:数值,默为0,触发加载的内部块与外部块底部的距离
    //options.stop:方法,停止滚动加载的条件,默认返回false,一直加载
	( function ( $ ) {
    $.fn.scrollLoad = function ( options ) {
        var self = $( this );
        var inner = self[0] === window ? $( 'body' ) : self.children().first();
        if ( inner.length == 0 ) {
            throw 'No elements included';
        }
        options = $.extend( {
            delay: 0,
            marginBottom: 300,
            load: function ( success ) {
                console.log( 'Load function not set' );
                success();
            },
            stop: function () {
                return true;
            }
        }, options );
        var getMargin = function ( name ) {
            return Math.floor( parseFloat( this.css( name ).replace( 'px', '' ) ) );
        }
        var getScrollAll = function () {
            var marginBottom = getMargin.call( inner, 'margin-bottom' );
            var marginTop = getMargin.call( inner, 'margin-top' );
            return inner.outerHeight() + marginTop + marginBottom;
        };
        var isLoad = false, loadCount = 0;
        var init = function () {
            if ( getScrollAll() < self.height() && loadCount++ < 100 ) {
                options.load( function () {
                    !options.stop() && init();
                } );
            }
        };
        init();
        self.on( 'scroll', function () {
            if ( options.stop() ) {
                self.unbind( 'scroll' );
                return;
            } else if ( loadCount++ > 1000 ) {
                throw 'Whether the stop condition is set incorrectly';
            }
            if ( !isLoad && self.scrollTop() + self.height() + options.marginBottom >= getScrollAll() ) {
                isLoad = true;
                setTimeout( function () {
                    options.load( function () {
                        isLoad = false;
                    } );
                }, options.delay );
            }
        } );
    };
} )( jQuery );
</script>

开始加载

<script>
//加载动画
function waterFall( key ) {
    $( "#clearfix_" + key ).fadeTo( 500, 0.8 );
    $( "#clearfix_" + key ).fadeTo( 500, 0.45 );

}
//加载数据
function ViewData( key, value ) {
    $.post( '/Recommend/index', { mfName: value, 'searchKey': '', 'pageIndex': 1, 'pageSize': 8 }, function ( datas ) {
        $( "#clearfix_" + key ).html( datas );
        $( "#clearfix_" + key ).fadeTo( 800, 1 );
    } );
};
$( function () {
    var index = 0;
    $( window ).scrollLoad( {
        marginBottom: 300,
        load: function ( success ) {
            var subArray = array.shift();//移除第一个元素,并返回当前移除的元素
            if ( subArray != undefined ) {
                $( '#container_' + subArray.key ).show();
                $( '#container_' + subArray.key + ' .wjl_adTop' ).flexslider( {
                    animation: "slide",
                    direction: "vertical",
                    easing: "swing",
                    directionNav: false, //是否显示左右控制按钮 true&false
                    controlNav: false
                } );
                waterFall( subArray.key );
                ViewData( subArray.key, subArray.mfs );
                index++;
            }
            success();
        },
        stop: function () {
            return array.length == 0;
            //   $.isEmptyObject(obj)
        }
    } )
} );
//手动定位 左侧带有导航栏的
function myjump( event, jump ) {
    index = 0;
    var subArray = [];
    $.each( array, function ( idx ) {
        if ( array[idx] != undefined && array[idx].key == jump ) {
            subArray = array[idx];//idx为数组下标
            array[idx] = undefined;

        }
    } );
    //轮播效果
    if ( subArray != undefined ) {
        $( '#container_' + subArray.key ).show();
        $( '#container_' + subArray.key + ' .wjl_adTop' ).flexslider( {
            animation: "slide",
            direction: "vertical",
            easing: "swing",
            directionNav: false, //是否显示左右控制按钮 true&false
            controlNav: false
        } );
        if ( $.isEmptyObject( subArray ) ) {
            waterFall( jump );
        } else {
            waterFall( jump );
            ViewData( subArray.key, subArray.mfs );
            index++;
        }
    }
}

数组

<script>
var array = @Html.Raw(data.Select(item=>new {mfs= item.Mfs.Select(mf=>mf.Name).ToArray(),key= item.Key }).ToJson());
//加载动画
</script>

//左侧导航栏
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值