微信扫一扫打赏支持

legend3---解决bootstrap栅格系统自动图片高度不齐问题

legend3---解决bootstrap栅格系统自动图片高度不齐问题

一、总结

一句话总结:

根据不同的屏幕宽度,放到不同的div盒子里面即可,和bootstrap栅格系统保持一致
<div id="lesson_img_group_1" class="clearfix lesson_img_group"></div>

 

 

 

二、解决bootstrap栅格系统自动图片高度不齐问题

博客对应课程的视频位置:

 

解决问题一:

如下课程列表中图片的大小可能不一样,用栅格系统会出现对不齐问题

解决方法是:根据不同的屏幕宽度,放到不同的div盒子里面即可,和bootstrap栅格系统保持一致

 

 

解决问题二:

不同尺寸下要保证图片栅格系统的正常适应性显示

 

 

 

 

解决问题三:

保证在不同屏幕下的显示都是满的,比如2*5,比如3*3,比如4*2,不会出现3*2+2这样的情况

 

 

{{--1、用php变量接收外部变量,在外部要把lesson数据赋值给$lesson_list--}}
{{--1、$lessons=>$lesson_list,$likeLessons_l_ids,$collectLessons_l_ids--}}
<script>
    @if(isset(Auth::guard('user')->user()->id))
        window.has_login=true;
    @else
        window.has_login=false;
    @endif
</script>

{{--懒加载--}}
@include('home.app.lazyload')

{{--
传10个数据过来,如果是宽的,用2*4个,如果是中等宽的,用3*3

--}}

<div id="lesson_img_group_row" class="row">
    <div id="lesson_img_group_1" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_2" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_3" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_4" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_5" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_6" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_7" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_8" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_9" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_10" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_11" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_12" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_13" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_14" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_15" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_16" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_17" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_18" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_19" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_20" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_21" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_22" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_23" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_24" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_25" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_26" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_27" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_28" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_29" class="clearfix lesson_img_group"></div>
    <div id="lesson_img_group_30" class="clearfix lesson_img_group"></div>


    <div id="lesson_img_group_init">
        @foreach($lesson_list as $lesson)
            <div class="col-md-3 col-sm-4 col-xs-6 lesson_box_item" style="margin-bottom: 20px;">
                <div id="lesson_img_box" class="choose_lesson_box" >
                    <div class="choose_lesson_imgbox">
                        <a href="/lesson/{{$lesson['l_id']}}">
                            {{--<img src="{{$lesson['l_preview']}}" style="max-width: 100%;min-height: 80px;" alt="">--}}
                            {{--图片懒加载--}}
                            {{--data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWNgYGBgAAAABQABh6FO1AAAAABJRU5ErkJggg==--}}
                            <img class="fry_lazy"
                                 src="{{config('staticfiles.PATH')}}/images/loading3.gif"
                                 data-src="{{$lesson['l_preview']}}"
                                 data-srcset="{{$lesson['l_preview']}} 350w"
                                 style="max-width: 100%;min-height: 80px;" alt="">
                        </a>
                        <a href="/lesson/{{$lesson['l_id']}}" class="choose_lesson_start_learn">
                                            <span class="choose_lesson_start_learn_content">
                                                开始学习
                                            </span>
                        </a>
                    </div>
                    <div class="choose_lesson_info_box">
                        <div class="choose_lesson_info_box_author" >
                            <span class="label label-warning">范仁义</span>
                        </div>
                        <div class="choose_lesson_info_box_time">
                            <span class="label label-warning">{{$lesson['l_video_num']}}课时</span>
                        </div>
                    </div>


                    <div class="choose_lesson_title" style="text-align: center;margin-top: 5px;">
                        <a class="choose_lesson_title_a font_cut" style="display: inline-block;" href="/lesson/{{$lesson['l_id']}}">
                            {{$lesson['l_title']}}
                        </a>
                        <div style="display: none;">会员优惠:8元 <del><i>10元</i></del></div>

                        <div class="video_interaction_box font_cut" style="font-size: 12px;width: 100%;">

                            {{--点赞--}}
                            <div class="video_interaction_box_like" style="margin-right: 3px;">
                                                <span style="@if(in_array($lesson['l_id'],$likeLessons_l_ids)) display:none; @endif" l_id="{{$lesson['l_id']}}" class="fa_like">
                                                    <i class="fa fa-thumbs-o-up fa-fw" aria-hidden="true"></i>
                                                    <span>@if(in_array($lesson['l_id'],$likeLessons_l_ids)) {{$lesson['l_like']-1}} @else {{$lesson['l_like']}} @endif </span>
                                                </span>
                                <span style="color: red;@if(!in_array($lesson['l_id'],$likeLessons_l_ids)) display:none; @endif"  l_id="{{$lesson['l_id']}}" class="fa_like_no">
                                                    <i class="fa fa-thumbs-up fa-fw"  aria-hidden="true"></i>
                                                    <span>@if(in_array($lesson['l_id'],$likeLessons_l_ids)) {{$lesson['l_like']}} @else {{$lesson['l_like']+1}} @endif</span>
                                                </span>

                            </div>

                            {{--收藏--}}
                            <div class="video_interaction_box_collect" style="margin-right: 3px;">
                                                <span style="@if(in_array($lesson['l_id'],$collectLessons_l_ids)) display:none; @endif" l_id="{{$lesson['l_id']}}" class="fa_collect">
                                                    <i class="fa fa-heart-o fa-fw " aria-hidden="true"></i>
                                                    <span>@if(in_array($lesson['l_id'],$collectLessons_l_ids)) {{$lesson['l_collect_num']-1}} @else {{$lesson['l_collect_num']}} @endif </span>
                                                </span>
                                <span style="color: red;@if(!in_array($lesson['l_id'],$collectLessons_l_ids)) display:none; @endif" l_id="{{$lesson['l_id']}}" class="fa_collect_no">
                                                    <i class="fa fa-heart fa-fw" aria-hidden="true"></i>
                                                    <span>@if(in_array($lesson['l_id'],$collectLessons_l_ids)) {{$lesson['l_collect_num']}} @else {{$lesson['l_collect_num']+1}} @endif </span>
                                                </span>
                            </div>

                            {{--浏览--}}
                            <div class="video_interaction_box_click"  style="margin-right: 0;">
                                <i class="fa fa-play-circle-o fa-fw" aria-hidden="true"></i>
                                <span>{{$lesson['l_click']}}</span>
                            </div>

                        </div>

                        <a href="/lesson/{{$lesson['l_id']}}">
                            <span class="splay" style="opacity: 0; margin-top: 105px;display: none;">开始学习</span>
                        </a>
                    </div>
                </div>
            </div>
        @endforeach
    </div>


</div>




<script>
    //
    {{--课程的点赞操作--}}
    $('.fa_like').click(function () {

        if(window.has_login){
            let l_id=$(this).attr('l_id');
            let _this=$(this);
            //console.log(l_id);
            $.post("/like_lesson", {'l_id':l_id,'_token':'{{csrf_token()}}'} ,function (data) {
                //console.log(data);
                if(parseInt(data.valid)==1){
                    _this.hide();
                    _this.parent().find('.fa_like_no').show();
                    layer_alert_success_mobile(data.message);
                }else{
                    layer_alert_fail_mobile(data.message);
                }
            });
        }
        else{
            layer_alert_get_content_mobile('.login_layer');
        }

    });
    //
    {{--取消课程点赞操作--}}
    $('.fa_like_no').click(function () {
        if(window.has_login){
            let l_id=$(this).attr('l_id');
            let _this=$(this);
            //console.log(l_id);
            $.post("/cancel_like_lesson", {'l_id':l_id,'_token':'{{csrf_token()}}'} ,function (data) {
                //console.log(data);
                if(parseInt(data.valid)==1){
                    _this.hide();
                    _this.parent().find('.fa_like').show();
                    layer_alert_success_mobile(data.message);
                }else{
                    layer_alert_fail_mobile(data.message);
                }
            });
        }
        else{
            layer_alert_get_content_mobile('.login_layer');
        }


    });
    {{--课程的收藏操作--}}
    //
    $('.fa_collect').click(function () {
        if(window.has_login){
            let l_id=$(this).attr('l_id');
            let _this=$(this);
            //console.log(l_id);
            $.post("/collect_lesson", {'l_id':l_id,'_token':'{{csrf_token()}}'} ,function (data) {
                //console.log(data);
                if(parseInt(data.valid)==1){
                    _this.hide();
                    _this.parent().find('.fa_collect_no').show();
                    layer_alert_success_mobile(data.message);
                }else{
                    layer_alert_fail_mobile(data.message);
                }
            });
        }
        else{
            layer_alert_get_content_mobile('.login_layer');
        }

    });
    //
    {{--课程的取消收藏操作--}}
    $('.fa_collect_no').click(function () {
        if(window.has_login){
            let l_id=$(this).attr('l_id');
            let _this=$(this);
            //console.log(l_id);
            $.post("/cancel_collect_lesson", {'l_id':l_id,'_token':'{{csrf_token()}}'} ,function (data) {
                //console.log(data);
                if(parseInt(data.valid)==1){
                    _this.hide();
                    _this.parent().find('.fa_collect').show();
                    layer_alert_success_mobile(data.message);
                }else{
                    layer_alert_fail_mobile(data.message);
                }
            });
        }
        else{
            layer_alert_get_content_mobile('.login_layer');
        }

    });
</script>

{{--懒加载--}}
<script>
    var fry_lazy_load = new LazyLoad({
        elements_selector: "img.fry_lazy",
        threshold:500
    });
</script>
{{--解决懒加载部分图片加载不出来的问题--}}

{{--
1、估计双层是没有这个问题的
-
--}}

{{--<script>--}}
    {{--// window.onresize = function() {--}}
    {{--//     alert('触发成功');--}}
    {{--// };--}}
    {{--$(function () {--}}
        {{--//let myEvent = new Event('resize');--}}
        {{--//window.dispatchEvent(myEvent);--}}
    {{--});--}}
{{--</script>--}}

{{--
动态的调整图片框的高度
将课程图片的高度调整我图片列表中最高图片的高度
--}}
{{--
每过0.1s自动将所有课程图片的高度调整为最大高度
--}}
<script>
/*  废弃  */
    function fry_align_img(element){
        let lesson_img_max_height=0;

        {{--获取图片最大高度--}}
        $(element).each(function () {
            let height=parseFloat($(this).css("height"));
            console.log(height);
            if(height>lesson_img_max_height) lesson_img_max_height=height;
        });
        {{--设置图片最大高度--}}
        $(element).each(function () {
            $(this).css({"min-height":lesson_img_max_height});
        });
    }

    // $(function () {
    //     fry_align_img("#lesson_img_box .choose_lesson_imgbox img");
    // });
</script>

{{--
根据不同的屏幕宽度,放到不同的div盒子里面即可

小于768,是2个一组
大于等于768,小于992,是3个一组
大于等于992,是4个一组
--}}
<script>
    let lesson_group_change=false;
    let lesson_group_num=999;//每组的元素

    function put_in_init_group(){
        $(".lesson_box_item").each(function () {
            $("#lesson_img_group_init").append($(this));
        });
    }
    function reset_lesson_img_group(force){
        //先清空group,然后再填数据
        //put_in_init_group();

        let now_width=$(window).width();
        // console.log($(window).width());
        // console.log(document.body.clientWidth);
        // console.log(document.body.offsetWidth);
        // console.log(window.innerWidth);
        // console.log(window.screen.width);
        // console.log($("#lesson_img_group_row").width());

        //785
        if(now_width<768-17){
            if(lesson_group_num!=2) lesson_group_change=true;
            lesson_group_num=2;
        }else if(now_width<992-17){
            if(lesson_group_num!=3) lesson_group_change=true;
            lesson_group_num=3;
        }else{
            //975-991的lesson_group_num都是4
            if(lesson_group_num!=4) lesson_group_change=true;
            lesson_group_num=4;
        }
        let index=0;

        if(lesson_group_change||force==true){
            lesson_group_change=false;
            //console.log("change");
            $(".lesson_box_item").each(function () {
                //console.log($(this));

                //组号
                let group_name_num=parseInt(index/lesson_group_num)+1;
                $("#lesson_img_group_"+group_name_num).append($(this));
                //console.log(index);
                //console.log(group_name_num);
                index++;
            });
        }
    }


</script>

{{--首页不满的组给干掉--}}
<script>
    function hide_notFull_group(){


        let lesson_list_position=window.lesson_list_position;
        let lesson_list_group_max=-999;
        if(lesson_list_position=="home_index"){
            $(".lesson_img_group").each(function () {
                let length=$(this).children().length;
                //console.log(length);
                if(length>lesson_list_group_max)
                    lesson_list_group_max=length;
            });
            //将不满的group干掉
            $(".lesson_img_group").each(function () {
                $(this).css({"display":"block"});
                let length=$(this).children().length;
                if(length<lesson_list_group_max) $(this).css({"display":"none"});
            });
        }
    }

    $(function () {
        reset_lesson_img_group();
        hide_notFull_group();
        $(window).on('resize', function() {
            reset_lesson_img_group();
            hide_notFull_group();
        }).resize();

        //强制
        //reset_lesson_img_group(true);

        setTimeout(function () {
            //再刷一遍,解决下面两种情况的不对
            let now_width=$(window).width();
            if(now_width<768){
                lesson_group_num=2;
            }else if(now_width<992){
                lesson_group_num=3;
            }else{
                lesson_group_num=4;
            }
            let index=0;
            //975-991
            let case1=now_width<=767-17&&now_width>=751-17;
            let case2=now_width<=991-17&&now_width>=975-17;
            if(case1||case2){
                console.log($(".lesson_box_item").length);
                $(".lesson_box_item").each(function () {
                    //组号
                    let group_name_num=parseInt(index/lesson_group_num)+1;
                    $("#lesson_img_group_"+group_name_num).append($(this));
                    console.log(index);
                    console.log(group_name_num);
                    index++;
                });
            }
            hide_notFull_group();
        },200);


    });
</script>

 

 

 

 

 
posted @ 2020-09-10 22:14  范仁义  阅读(1022)  评论(0编辑  收藏  举报