table列表滚动

这篇博客介绍了如何使用CSS来实现一个具有滚动功能的表格。内容包括如何设置HTML结构,特别是`<table>`元素,以及如何通过CSS样式控制thead和tbody部分,确保在滚动时表头固定不动。

css 

<style>
* { margin: 0; padding: 0;}
.myscroll { width: 300px; height: 260px; margin: 0 auto; border: 1px solid #ccc; line-height: 26px; font-size: 12px; overflow: auto;}
table tr.even{
  background: yellow;
}
table{
    margin-top: -30px;
}
table tr{
   height: 30px;
}
::-webkit-scrollbar {
   display: none;
}
</style>

index.html 

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<title>简单的jQuery无缝向上滚动效果演示1_dowebok</title> 
<script src="http://cdn.staticfile.org/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript" src="js/scroll.js"></script>
<script type="text/javascript">
$(function(){
   $('.myscroll').myScroll({
      speed: 40, //数值越大,速度越慢
      rowHeight: 30 //li的高度
   });
});
</script>

<tbody>
   <div class="myscroll">

<table>
   <thead>
      <tr>
         <th>序号</th>
         <th>姓名</th>
         <th>公司</th>
         <th>省会</th>
      </tr>
   </thead>
   <tbody>
      <tr>
         <td>1</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr class="even">
         <td>2</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr>
         <td>3</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr class="even">
         <td>4</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr>
         <td>5</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr class="even">
         <td>6</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr>
         <td>7</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr class="even">
         <td>8</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr>
         <td>9</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr class="even">
         <td>10</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr>
         <td>11</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>
      <tr class="even">
         <td>12</td>
         <td>bert</td>
         <td>云智慧</td>
         <td>河南</td>
      </tr>

   </tbody>
</table>

   </div>
</tbody>
</html>

 

scroll.js

(function($){
    $.fn.myScroll = function(options){
        //默认配置
        var defaults = {
            speed:40,  //滚动速度,值越大速度越慢
            rowHeight:30 //每行的高度
        };

        var opts = $.extend({}, defaults, options),intId = [];

        function marquee(obj, step){

            obj.find("table").animate({
                marginTop: '-=1'
            },10,function(){
                var s = Math.abs(parseInt($(this).css("margin-top")));
                if((s-30) >= step){ //减去 table thead的高度
                    $(this).find("tbody tr").slice(0, 1).appendTo($(this));
                    $(this).css("margin-top", '-30px');
                }
            });
        }

        this.each(function(i){
            var sh = opts["rowHeight"],speed = opts["speed"],_this = $(this);
            intId[i] = setInterval(function(){
                if(_this.find("table").height()<=_this.height()){
                    clearInterval(intId[i]);
                }else{
                    marquee(_this, sh);
                }
            }, speed);

            _this.hover(function(){
                clearInterval(intId[i]);
            },function(){
                intId[i] = setInterval(function(){
                    if(_this.find("table").height()<=_this.height()){
                        clearInterval(intId[i]);
                    }else{
                        marquee(_this, sh);
                    }
                }, speed);
            });

        });

    }

})(jQuery);

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值