javascript - bxSlider 切断幻灯片查看移动

标签 javascript jquery css mobile bxslider

我正在使用 bxSlider,它运行良好......我在某些功能上遇到了一个小问题......当我在移动设备上查看幻灯片时,它显示 1.5......基本上是一个完整的幻灯片然后是下一张的一部分。在代码中,我将 minSlides 设置为 1,将 maxSlides 设置为 3...我想要做的是显示 bxSlider一个特定的 li 仅当整个 li 适合屏幕时。例如,我的 div 宽度为 300 像素,为了显示其中两个,您的屏幕尺寸必须至少为 600 像素宽...这可能吗?

我创建了一个 fiddle :https://jsfiddle.net/785gcrnp/ .

示例页面是:http://joshrodg.com/hallmark/ - 一直在底部的黑色区域,上面写着“最新媒体”。

谢谢,
乔希

最佳答案

很好,看起来你取得了一些不错的进步。有一种方法可以将当前代码包装在一个函数中,并在窗口调整大小或方向改变时调用它。

这是包装在函数中的样子:

function adjustSlider(){
    var sw = 200;
    var sm = 20;
    var ms = Math.floor($('#nocrop').width() / (sw + sm));
    $('#nocrop .bxslider').bxSlider({
        pager: false,
        slideWidth: sw,
        slideMargin: sm,
        maxSlides: ms > 1 ? ms : 1,
    });
}

然后,我们需要在文档首次加载时调用此函数,否则您的计算只会在窗口调整大小时使用:

$(document).ready(function(){
    adjustSlider();
});

然后,我们添加一个窗口调整大小事件。我将对 adjustSlider 函数的调用放在计时器中,这样如果窗口在短时间内调整了很多大小,它就会有所帮助。我们也可以在这里添加 onorientationchange 事件来进行相同的调用。方向更改有自己内置的延迟,并且此事件不会像调整窗口大小那样频繁触发,所以我没有将其放入计时器中。

$(window).resize(function(){
    setTimeout(function(){
        adjustSlider();
    }, 250);
});

window.onorientationchange = function(event){
    adjustSlider();
}

定时器的 250 毫秒可能有点高,请随意调整。在 jsfiddle 上调整 Pane 大小时,它对我来说仍然感觉很重。这可能是由于 javascript 在 jsfiddle 中的运行方式,或者可能与此 slider 处理其属性设置的方式有关。它会在您的实际站点上显示得最好,因此请在那里进行一些测试以确保速度和性能不会成为问题。让我知道事情的后续!

此外,这里有一个有效的 jsfiddle,用于展示将它们放在一起时的外观示例:http://jsfiddle.net/sm1215/0517f76w/4/

编辑:话说,哇哦还将 onorientationchange 放在调整大小事件中,这是行不通的。这是固定的,我已经更新了 fiddle 。

关于javascript - bxSlider 切断幻灯片查看移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35506733/

相关文章:

javascript - 按数字顺序对数字数组进行合并和排序 - javascript

php - 如何检测调用是否通过 jQuery 进行

javascript - 重新排序从 PHP 数组呈现的 HTML

javascript - jQuery Datatable 无法编辑新创建的行

jQuery 在悬停时折叠 Div

css - 如何将 joomla 模板中的页脚保持在底部?

javascript - Firefox OS 设备或模拟器上的音频捕获

javascript - 获取 div ID,传递给变量,然后使用 jquery 取消隐藏该 div

html - 在css3中缩小窗口时如何使内容居中

javascript - req.session 在 Node 中未定义?