JQuery Jscrollpane 水平滚动,带内联 HTML 列表

发布于 2024-10-18 21:08:03 字数 662 浏览 1 评论 0原文

我想要一个带有 html 列表的滚动窗格,该列表只能水平滚动。当我使用下面的代码时,我的列表项在整行后相互清除,并且滚动窗格仅垂直滚动。

<div class="scrolling-list">
<ul>
<li> List item 1</li>
<li> List item 2</li>
<li> List item 3</li>
<li> List item 4</li>
<li> List item 5</li>
</ul>    
</div>

JS

<script type="text/javascript">
        $(function()
        {
            $('.scrolling-list').jScrollPane();
        });
</script>

CSS

.scrolling-list{
height:auto;
max-height:200px;
width: 640px;
}
li{
float:left;
width:200px;}

I would like to have a scrollpane with a html list that will only scroll horizontally. When I use the code below, my list items clear each other after a full row and the scroll pane only scrolls vertically.

<div class="scrolling-list">
<ul>
<li> List item 1</li>
<li> List item 2</li>
<li> List item 3</li>
<li> List item 4</li>
<li> List item 5</li>
</ul>    
</div>

JS

<script type="text/javascript">
        $(function()
        {
            $('.scrolling-list').jScrollPane();
        });
</script>

CSS

.scrolling-list{
height:auto;
max-height:200px;
width: 640px;
}
li{
float:left;
width:200px;}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

臻嫒无言 2024-10-25 21:08:03

您需要使用内联块显示并将 whitespace:nowrap 添加到 CSS,而不是使用浮动。请注意,这可能与某些 IE 浏览器不兼容。

.scrolling-list {
    height:auto;
    max-height:200px;
    width:640px;
    white-space:nowrap;
}
.scrolling-list li {
    display:inline-block;
    width:200px;
}

Instead of using floats you'll need to use inline-block display and add whitespace:nowrap to your CSS. Note that this might not be compatible with some IE browsers.

.scrolling-list {
    height:auto;
    max-height:200px;
    width:640px;
    white-space:nowrap;
}
.scrolling-list li {
    display:inline-block;
    width:200px;
}
子栖 2024-10-25 21:08:03

如果内联块方法不适合您,那么您可以使用 javascript 将 UL 的宽度设置为其所有子级的总宽度,例如:

<script type="text/javascript">
    $(function()
    {
        var list = $('.scrolling-list');
        list.find('ul').each(
            function()
            {
                var w = 0;
                $(this).find('li').each(
                    function()
                    {
                        w += $(this).outerWidth();
                    }
                ).css('width', w + 'px');
            }
        )
        list.jScrollPane();
    });
</script>

If the inline-block approach doesn't work for you then you could use javascript to set the width of the UL to the total width of all its children e.g. something like:

<script type="text/javascript">
    $(function()
    {
        var list = $('.scrolling-list');
        list.find('ul').each(
            function()
            {
                var w = 0;
                $(this).find('li').each(
                    function()
                    {
                        w += $(this).outerWidth();
                    }
                ).css('width', w + 'px');
            }
        )
        list.jScrollPane();
    });
</script>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文