• 图片左右滚动


    需求:页面显示教师信息列表,列表中每一条数据显示图片滚动插件,每张图片的长宽及长宽比例各不相同。

    前提条件:美工把静态页面写好

    HTML代码:

    @using Models;
    @{
        List<cms_content> teacherList = ViewData["teacherList"] as List<cms_content>; //春雨树频道
        PagerModel pager = ViewData["pager"] as PagerModel;
    }
    
    <div class="teacherteam_box">
        <h1>教师团队</h1>
        @foreach (cms_content teacher in teacherList)
        {
            <div class="teacher_box">
                <div class="teacher_img fl">
                    <img src="~/@teacher.imgUrl" />
                </div>
                <div class="teacher_infor fl">
                    <h2>@teacher.title</h2>
                    <p>
                        @teacher.description
                    </p>
                    <div class="products_box">
                        <div class="products_pre">
                            <img src="~/Theme/images/left.png" />
                        </div>
                        <div class="products_next">
                            <img src="~/Theme/images/right.png" />
                        </div>
                        <div class="div-imgbox">
                            <ul>
                                @foreach (Tuple<string, string> item in teacher.imgList)
                                {
                                    <li>
                                        <img alt="@item.Item1" src="@item.Item2" style="height:221px;" />
                                    </li>
                                }
                            </ul>
                        </div>
                    </div>
                </div>
                <div class="clear"></div>
            </div>
        }
    
        <div class="page_box">
            <span>共@(pager.totalRows)条信息</span>
            <a href="javascript:void(0);" onclick="teacherPage(this,1)">首页</a>
            <a href="javascript:void(0);" onclick="teacherPage(this,2)">上一页</a>
            <a href="javascript:void(0);"><i>@pager.page</i><b>/@pager.pageCount</b></a>
            <a href="javascript:void(0);" onclick="teacherPage(this,3)">下一页</a>
            <a href="javascript:void(0);" onclick="teacherPage(this,4)">尾页</a>
        </div>
    </div>
    View Code

    JS代码:

    <script type="text/javascript">
        var _lock = false;
    
        $(function () {
            teacherPage(null, null);
        });//end $
    
        //教师团队
        //flag=1首页,2上一页,3下一页,4尾页
        function teacherPage(obj, flag) {
            var totalPage = 1;
            var page = 1;
            if (obj) {
                page = parseInt($(obj).parent().find("i").text());
                totalPage = parseInt($(obj).parent().find("b").text().replace("/", ""));
            }
            if (flag == 1) { page = 1; }
            if (flag == 2 && page > 1) { page = page - 1; }
            if (flag == 3 && page < totalPage) { page = page + 1; }
            if (flag == 4) { page = totalPage; }
    
            $.ajax({
                type: "GET",
                url: "@Url.Content("~/")home/teachers?t=" + new Date().valueOf(),
                data: { page: page },
                success: function (data) {
                    $('#teachers').html(data);
                    sliderImg();
                }
            });
        }
    
        //滚动图片
        function sliderImg() {
            $(".products_next").click(function () {
                if (_lock) return;
                _lock = true;
                var ul = $(this).parent().find("ul");
                if (!canSlideLeft(ul)) { _lock = false; return; }
                var liFirst;
                var liArr = ul.find("li");
                for (var i = 0; i < liArr.length; i++) {
                    if ($(liArr[i]).css("margin-left").indexOf("-") == -1) {
                        liFirst = $(liArr[i]);
                        break;
                    }
                }
                var margin = liFirst.width() + 15;
                var speed = margin * 3;
                liFirst.animate({
                    marginLeft: 0 - margin
                }, 500);
                setTimeout(function () {
                    _lock = false;
                }, 500);
            });
            $(".products_pre").click(function () {
                if (_lock) return;
                _lock = true;
                var ul = $(this).parent().find("ul");
                if (!canSlideRight(ul)) { _lock = false; return; }
                var liLast;
                var liArr = ul.find("li");
                for (var i = liArr.length - 1; i >= 0; i--) {
                    if ($(liArr[i]).css("margin-left") && $(liArr[i]).css("margin-left").indexOf("-") != -1) {
                        liLast = $(liArr[i]);
                        break;
                    }
                }
                var margin = liLast.width() + 15;
                var speed = margin * 3;
                liLast.animate({
                    marginLeft: 0
                }, 500);
                setTimeout(function () {
                    _lock = false;
                }, 500);
            });
        }
    
        //判断图片是否可以向左滚动
        function canSlideLeft(ul) {
            var width = 0;
            ul.find("li").each(function () {
                var li = $(this);
                if (!li.css("margin-left") || li.css("margin-left").indexOf("-") == -1) {
                    width = width + li.width() + 15;
                }
            });
            if (width <= 710) {
                return false;
            }
            return true;
        }
    
        //判断图片是否可以向右滚动
        function canSlideRight(ul) {
            var bl = false;
            ul.find("li").each(function () {
                var li = $(this);
                if (li.css("margin-left") && li.css("margin-left").indexOf("-") != -1) {
                    bl = bl || true;
                }
            });
            return bl;
        }
    </script>
    View Code

    效果图:

    标签:前端分页、无刷新分页、js分页

  • 相关阅读:
    dataTables分页实现两个前提
    centos 7 下 nginx 1.10.3 编译安装的方法
    redis 远程连接出错的解决办法
    Yii2事件驱动的运行机制
    Yii2项目高级模版 三个模块在同一个目录下的重定向配置
    PHP处理上传文件信息数组中的文件类型 正确获取
    PHP is_writeable 存在bug , 写一个自定函数 判断文件是否可写
    PHP面试题学习
    解决yii2 禁用layout时AppAsset不加载资源的问题
    如何在 Docker 容器中运行 Kali Linux 2.0
  • 原文地址:https://www.cnblogs.com/s0611163/p/6474928.html
Copyright © 2020-2023  润新知