利用jQuery制作简易的table上下无缝轮播

这篇具有很好参考价值的文章主要介绍了利用jQuery制作简易的table上下无缝轮播。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>

    <style>
        .box {
            /* 最外层可显示的高度 */
            height: 200px;
            overflow: hidden;
        }

        .table {
            width: 600px
        }

        .thead,
        .tbody {
            position: relative;
        }

        .thead {
            z-index: 1;
            background: darkgray;
        }

        .tbody {
            z-index: 0;
        }
    </style>
</head>

<body>
    <div class="box">
        <table class="table" border=1 cellspacing=0>
            <thead class="thead">
                <tr>
                    <th>序号</th>
                    <th>名字</th>
                    <th>年龄</th>
                    <th>性别</th>
                    <th>测试1</th>
                </tr>
            </thead>
            <tbody class="tbody">

            </tbody>
        </table>
    </div>
    <script>

        // 加载数据
        for (let i = 0; i < 20; i++) {
            var row = [
                '<tr>',
                '<td title="' + i + 1 + '">' + i + 1 + '</td>',
                '<td>' + '名字' + i + '</td>',
                '<td>' + '年龄' + i + '</td>',
                '<td>' + '性别' + i + '</td>',
                '<td>' + '测试1--' + i + '</td>',
                '</tr>'
            ].join('')
            console.log(row)
            $('.box tbody').append(row)
        }

        startRoll(50)  //50为时间
        function startRoll(time) {
            let timer = null
            //默认初始值为自己本身的top
            let top = $(".tbody").css('top')
            let offsetTop = top.substring(0, top.indexOf('px'))
            startFun(time)
            function startFun(time) {
                timer = setInterval(() => {
                    //比较数据的长度是否超过div的高度,没超过不开始轮播
                    if (!heightComparison()) {
                        clearTimeout(timer)
                        return false
                    }
                    offsetTop -= 1

                    let body_tbody = $("tbody")   //定义 tbody为body_tbody
                    let scrollHeight = body_tbody.find("tr").outerHeight(true);   //获取  tr的高度
                    
                    let tbodyTopPX = body_tbody.css('top');      // 获取tbody的top值
                    let tbodyTop = tbodyTopPX.substring(0, tbodyTopPX.indexOf('px'))
                    
                    body_tbody.css({ 'top': offsetTop + 'px' })     //改变tbody的top    令tbody向上移动
                    
                    if (tbodyTop != 0 && parseInt(tbodyTop) % Math.ceil(scrollHeight) === 0) {         //  tbodyTop的top值是 tr高度的倍数时    将第一个tr移动到最后并让tbodyTop的top值减去tr的高度
                        body_tbody.find("tr:first").appendTo(body_tbody);
                        offsetTop += scrollHeight
                        body_tbody.css({ 'top': offsetTop + 'px' })
                    }

                }, time)
            }
            $(".box").mouseover(function () {
                // 鼠标移入  关闭轮播
                clearTimeout(timer)
            });
            $(".box").mouseout(function () {
                // 鼠标移出  重新开启轮播
                startFun(time)
            });
        }

        function heightComparison() {
            let divHeight = $(".box").height();    //最外层div的高度  用来比较数据的长度是否超过div的高度,没超过不开始轮播
            let tbodyHeight = $(".tbody").height();
            let tHeadHeight = $(".thead").height();
            return tbodyHeight > divHeight - tHeadHeight
        }

    </script>
</body>

</html>

利用jQuery制作简易的table上下无缝轮播

 文章来源地址https://www.toymoban.com/news/detail-485057.html

到了这里,关于利用jQuery制作简易的table上下无缝轮播的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用html+css+jquery实现3D轮播图

    还是先来看看效果图:  通过效果图我们先理一下思路: 首先就是需要几张图片,但只有一张是显示在我们眼前的 第二步:把一张图片分成几等份,这样点击转换的时候就会分开转 第三步:就是实现点击按钮切换下一张。 HTML部分首先我们需要一个盒子显示图片,然后在盒

    2024年02月08日
    浏览(58)
  • 【Jquery插件】Owl Carousel轮播插件介绍与使用

    Owl Carousel:Basic Demo | Owl Carousel | 2.3.4 (owlcarousel2.github.io) 「Owl Carousel」插件常用的参数配置如下: 参数名称 参数类型 默认值 说明 items number 3 设置同时显示的轮播项数 loop boolean false 是否开启循环播放 autoplay boolean false 是否自动播放 autoplayTimeout number 5000 自动播放等待时间,

    2024年02月06日
    浏览(34)
  • vue-seamless-scroll无缝滚动组件使用方法详解+解决轮播空白缝隙问题(最后面)

    下载安装 1.npm npm install vue-seamless-scroll --save 2.yarn yarn add vue-seamless-scroll 使用 1、全局注册 import Vue from \\\'vue\\\' import scroll from \\\'vue-seamless-scroll\\\' Vue.use(scroll) //或者 //Vue.use(scroll,{componentName: \\\'scroll-seamless\\\'}) 2、局部注册 import vueSeamless from \\\'vue-seamless-scroll\\\'    export default {       compone

    2024年02月08日
    浏览(51)
  • jquery导航图片全屏滚动、首页全屏轮播图,各式相册

    源码 project css js image index1 index2 index3 index4 index.html index1到index4分为四个iframe标签引入的可单独分离的主页,相当于组件的原理,其中index作为主页,index1是首页全屏轮播图,其他都是单独的相册风格,也可单独使用。 index.html的iframe引入其他组件: iframe一些基本属性说明:

    2023年04月11日
    浏览(35)
  • 实现简易3d轮播图

    效果图如下 主要构建想法: 1、html与css先将主体框架以及样式写出来,将图片一行排列,然后设置舞台元素的长宽,超出部分隐藏,使用 transform: scale(0.5); 控制图片的大小 2、当基本样式写完后,要思考使用如何使其发生位置变换,由于学识微薄,使用改变类名的办法使其位

    2024年02月02日
    浏览(40)
  • 小程序轮播,上下两层图片,底层渐变淡入淡出,上层动画划入效果

    先看效果: 如果大家有喜茶小程序,可以进入查看首页轮播效果图,大概就是那个效果。 捋一下我开发过程的思路,一共有两个。 第一个思路: 用微信小程序的组件,swiper实现上层透明照片的轮播效果,底层的照片根据swiper组件的bindchange,bindtransition,bindanimationfinish三个方法

    2024年02月15日
    浏览(42)
  • vue3 实现门户网站页面鼠标滚轮控制页面上下滚动---类似轮播图

    案例参考:首页_CNESA 储能研究平台 //监听鼠标滚动事件  window.addEventListener(\\\'mousewheel\\\', debounce(methodB,300), true)||window.addEventListener(\\\"DOMMouseScroll\\\",debounce(methodB,300),false) const debounce = (func, wait) ={         let timeout;         return  function() {             let context = this;            

    2024年02月12日
    浏览(73)
  • day35-Image Carousel(图片轮播图简易版)

    效果 index.html style.css script.js

    2024年02月16日
    浏览(47)
  • 任务14、无缝衔接,MidJourney瓷砖(Tile)参数制作精良贴图

    在这个实验任务中,我们将深入探索《Midjourney Ai绘画》中的Tile技术和其在艺术创作中的具有挑战性的应用。此任务将通过理论学习与实践操作相结合的方式,让参与者更好地理解Tile的核心概念,熟练掌握如何在Midjourney平台上使用Tile参数,并实际运用到AI绘画的创作中。 首

    2024年02月14日
    浏览(43)
  • js调整table表格上下相邻元素顺序

    有时候我们会遇到要通过箭头控制table表格上下顺序的需求,如下: 点击向下就将该元素下移一位,下面的一位元素就移上来,点击向上就将该元素上移一位,上面的一位元素就移下来,也就是相邻元素互换位置顺序:

    2024年02月05日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包