Jquery中关于DIV中滚动的处理,百分求解

有理想的草根 2014-05-27 09:41:33
小弟遇到一个需要使用JQuery使用的问题,请各位大神,神回复。
需要贴上全部代码,谢谢。
有一个DIV这个DIV里有个超长的Table。
DIV设置了限制宽度,如:300PX
现在需要解决的问题是:

<div id="div_timegantt" class="div_timegantt">
<table cellpadding="0" cellspacing="0">
<tr class="thead">

<th colspan="6">  00:00  </th>
<th colspan="6">  01:00  </th>
<th colspan="6">  02:00  </th>
<th colspan="6">  03:00  </th>
<th colspan="6">  04:00  </th>
<th colspan="6">  05:00  </th>
<th colspan="6">  06:00  </th>
<th colspan="6">  07:00  </th>
<th colspan="6">  08:00  </th>

<th colspan="6">  09:00  </th>
<th colspan="6">  10:00  </th>
</tr>

<!-- 1Row -->
<tr class="tbody">
<!-- 00:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 01:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 02:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 03:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 04:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 05:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 06:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 07:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 08:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 09:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>

<!-- 10:00 -->
<td class="nonepast10"> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</div>


(1)在DIV,设置可以滚动,但只能横向滚动,但是需要隐藏横向滚动条(不显示)。
overflow:auto;
overflow-x:hidden;
(2)采用<a id='scLeft'>以及<a id=‘scRight’>现实现,DIV中Table的移动,就像是滚动条操作一样。
(3)每次移动的Step为1个TH
(4)另外,需要可以设置默认显示的区间,如,默认是:05:00~08:00.就只显示这几个。(向前,向后移动按钮,还是好用的)

PS:最好不要用隐藏方式。
希望,大神们给出代码,十分感谢。
...全文
508 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fcqm8888 2016-04-11
  • 打赏
  • 举报
回复
游解答了吗?看来问题比较棘手啊。
  • 打赏
  • 举报
回复
第四点只需要指定开始区间就好了,后续的显示由容器的宽度来决定
<style>
.div_timegantt{overflow:auto;overflow-x:hidden;width:300px;}
</style>
<div id="div_timegantt" class="div_timegantt">
<table cellpadding="0" cellspacing="0">
                                    <tr class="thead">
                                     
                                      <th colspan="6">  00:00  </th>
                                      <th colspan="6">  01:00  </th>
                                      <th colspan="6">  02:00  </th>
                                      <th colspan="6">  03:00  </th>
                                      <th colspan="6">  04:00  </th>
                                      <th colspan="6">  05:00  </th>
                                      <th colspan="6">  06:00  </th>
                                      <th colspan="6">  07:00  </th>
                                      <th colspan="6">  08:00  </th>                                       
                                      <th colspan="6">  09:00  </th>
                                      <th colspan="6">  10:00  </th>
                                    </tr>
                                     
                                    <!-- 1Row -->
                                    <tr class="tbody">
                                      <!-- 00:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 01:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 02:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 03:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 04:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 05:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 06:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 07:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 08:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 09:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                       
                                      <!-- 10:00 -->
                                      <td class="nonepast10"> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                      <td> </td>
                                    </tr>
</table>
</div>
<a id='scLeft' href='#'>左移</a> <a id='scRight' href='#'>右移</a>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
    var nowTH = 0, dv = $('#div_timegantt'), ths = dv.find('th'), thNum = ths.size(), maxScrollLeft = ths.parent().width() - dv.width()
    , startTH = '05:00';
    $('#scLeft,#scRight').click(function () {
        if (arguments.length < 2) nowTH += this.id == 'scLeft' ? -1 : 1;
        if (nowTH < 0) { nowTH = 0; return false }
        var scrollLeft = 0;
        ths.each(function (i, el) { if (i >= nowTH) return false; scrollLeft += ths.eq(i).width(); });
        if (scrollLeft > maxScrollLeft) nowTH--;
        dv.attr('scrollLeft', scrollLeft);

        return false;
    });
    $(function () {
        if (startTH != '') {
            nowTH = ths.filter(':contains("' + startTH + '")').index();
            if (nowTH != -1) $('#scLeft').trigger('click', 'init');
            else nowTH = 0;   //找不到开始的th对象则还是从0开始
        }
    });
</script>
</body>
</html>
码无边 2014-05-28
  • 打赏
  • 举报
回复
直接加iframe 关于水平和竖直的滚动条就很好解决。
内容概要:本文档系统性地介绍了2024年最新提出的两种智能优化算法——青蒿素优化算法与霜冰优化算法(RIME)的原理、实现方法及其性能对比分析,并提供了完整的Matlab代码实现。文档不仅聚焦于核心算法的仿真与验证,还整合了大量前沿科研资源,涵盖微电网优化、风电功率预测、无人机三维路径规划、电动汽车调度、图像融合、负荷预测、通信信号处理、电力系统故障恢复等多个高价值应用场景。所有案例均基于Matlab/Simulink平台进行建模与仿真,强调算法在复杂工程系统的实际应用能力,旨在为科研人员提供一套从理论到代码再到应用的完整复现体系。; 适合人群:具备一定编程基础和科研背景的研究生、高校教师及工程技术人员,尤其适合从事智能优化算法研究、新能源系统优化、自动化控制、电力系统调度、无人机导航与路径规划等相关领域的研究人员。; 使用场景及目标:①用于高水平学术论文的复现与创新性研究,提升科研效率与成果产出;②应用于复杂工程系统的建模仿真与智能优化设计,如多能互补系统调度、无人机避障路径规划、微电网能量管理等;③作为智能优化算法的教学与学习资料,深入理解现代元启发式算法的设计思想与实现机制。; 阅读建议:建议读者结合文档提供的Matlab代码与Simulink仿真模型,按照目录结构循序渐进地学习与实践,优先选择与自身研究方向契合的案例进行代码复现,重点关注算法参数设置、收敛曲线分析与多算法对比实验部分,以全面提升算法应用与科研创新能力。

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧