jScrollpane 多次触发后行为不当

发布于 2024-12-20 08:15:35 字数 1459 浏览 0 评论 0原文

我在我的网站中使用 jscrollpane http://jscrollpane.kelvinluck.com/ 并且它可以工作,但不能100%。

需要明确的是,我在图像列表上使用 jscrollpane 来满足水平溢出的需要。图像位于 div 内,一旦用户单击不同的按钮,我将更改 div 内容。因此,我需要将维护位置设置为 false,以确保 div 内容更改后,它不会向右“过度滚动”并使左侧的内容不可见。

这是我的代码:

// function to change the div content
function getContainerImg(cid) {

// Use jscrollpane api function to enable reinitialization
    var scrollelement = $('#containersimg').jScrollPane({ maintainPosition: false });
    var api = scrollelement.data('jsp');
    $.ajax({
        async: false,
        url: '@(Url.Action("GetContainersImg", "Kitchen"))',
        type: 'GET',
        data: { name: cid },
        success: function (result) {

            api.getContentPane().html(result);
            // Needed to apply jscrollpane after change new container type
            api.reinitialise();

            $('#containersimg').effect('slide', 500);

我在测试过程中测试了几个场景,出现了一些奇怪的行为:

  1. 如果我打开我的网站并让它闲置一段时间,则维护位置无法工作,使更新的图像不可见
  2. 如果我单击多次切换内容的按钮,滚动条会消失一段时间,只有再次触发内容更改才会重新出现

编辑: 附上一张图片来说明我的情况: 在此处输入图像描述

编辑 2: 在此处包含完整代码:

pastebin.com/qfVSp2tq Css:

pastebin.com/FdMXhS5B

滚动条丢失的情况越来越频繁......

知道为什么会出现这个问题吗?这是一个非常重要的错误,因为如果滚动条保留在最右边的位置或者滚动条根本不出现,用户可能无法看到内容。

我想可能的原因可能是我构造滚动条的顺序。有什么建议吗? 非常感谢...

I am using jscrollpane http://jscrollpane.kelvinluck.com/ in my site and it working, but not 100%.

To be clear, I am using the jscrollpane on a list of images to cater for the horizontal overflow. The images is located inside a div, and I will change the div content once user click on different buttons. Thus, I need to set the maintainPosition to false to ensure after the div content is change, it is not being "over-scroll" to the right and making contents at the left invisible.

Here is my code:

// function to change the div content
function getContainerImg(cid) {

// Use jscrollpane api function to enable reinitialization
    var scrollelement = $('#containersimg').jScrollPane({ maintainPosition: false });
    var api = scrollelement.data('jsp');
    $.ajax({
        async: false,
        url: '@(Url.Action("GetContainersImg", "Kitchen"))',
        type: 'GET',
        data: { name: cid },
        success: function (result) {

            api.getContentPane().html(result);
            // Needed to apply jscrollpane after change new container type
            api.reinitialise();

            $('#containersimg').effect('slide', 500);

I had tested several scenario during testing, there are some weird behavior occur:

  1. If i open my site and let it idle for a while, the maintainPosition is failed to work, making the updated images not visible
  2. If i click on the button to switch the content several times, the scroll bar will disappear some time, it will only re-appear if i trigger the content change again

EDIT:
Include an image to illustrate my situation:
enter image description here

EDIT 2:
Include full code here:

pastebin.com/qfVSp2tq
Css:

pastebin.com/FdMXhS5B

The missing of scrollbar is occured more and more frequent...

Any idea why is this problem occur? It is very important bug since user might not be able to see the content if the scroll bar retain its position to the right-most or when the scroll bar is not appear at all.

I am thinking possible reason might be the order i construct the scroll bar. Any advise??
Thank you very much...

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

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

发布评论

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

评论(1

无风消散 2024-12-27 08:15:35

我有一个困惑,也许它可以帮助你,看看当你点击图像向下滑动 500 时,但是在 ajax 请求上是否收到任何内容?,可能空内容会覆盖你最后 3 张图像,因为收到空内容你什么也看不到,我不确定,但可能是..

i have one confusion ,may be it helps you,see when you click image is slide down 500,but on ajax request is there any content is received?,may empty content override your last 3 images,and because empty content received you see nothing,i am not sure but may it be..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文