首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSSOR滑翔机-响应模式-结合宽度和高度限制

问JSSOR滑翔机-响应模式-结合宽度和高度限制
EN

Stack Overflow用户
提问于 2017-06-19 17:29:46
回答 1查看 480关注 0票数 0

试图使JSSOR滑翔机在移动设备上工作,无论是纵向模式还是横向模式。

问题:“缩放到:窗口高度”选项适用于景观,但对于肖像来说太高了。“缩放:窗口宽度”选项适用于肖像,但对于景观来说太宽了。

如何将这两个代码部分组合起来,使滑块适合:

  • 父容器宽度在纵向模式中
  • 父容器高度在横向模式中

“父容器宽度”响应代码:

代码语言:javascript
复制
        function ScaleSlider() {
            var refSize = jssor_1_slider.$Elmt.parentNode.clientWidth;
            if (refSize) {
                jssor_1_slider.$ScaleWidth(refSize);
            }
            else {
                window.setTimeout(ScaleSlider, 30);
            }
        }
        ScaleSlider();
        $Jssor$.$AddEvent(window, "load", ScaleSlider);
        $Jssor$.$AddEvent(window, "resize", ScaleSlider);
        $Jssor$.$AddEvent(window, "orientationchange", ScaleSlider);

“父容器高度”响应代码:

代码语言:javascript
复制
        function ScaleSlider() {
            var refSize = jssor_1_slider.$Elmt.parentNode.clientHeight;
            if (refSize) {
                jssor_1_slider.$ScaleHeight(refSize);
            }
            else {
                window.setTimeout(ScaleSlider, 30);
            }
        }
        ScaleSlider();
        $Jssor$.$AddEvent(window, "load", ScaleSlider);
        $Jssor$.$AddEvent(window, "resize", ScaleSlider);
        $Jssor$.$AddEvent(window, "orientationchange", ScaleSlider);

我相信这对任何熟悉JS的人来说都很容易,但是我的知识却很缺乏。

最理想的情况是,如果可以在景观模式下缩放,只需主图像到屏幕的高度,将缩略图和子弹留在屏幕边缘以下(不需要在手机上使用它们,用户可以左右滑动),我也很想看到这个解决方案。

EN

回答 1

Stack Overflow用户

发布于 2017-06-19 20:46:42

下面是示例/全屏幕包含在窗口.full中的代码

代码语言:javascript
复制
//responsive code begin
//remove responsive code if you don't want the slider to scale while window scaling
function ScaleSlider() {
    var w = window,
    d = document,
    e = d.documentElement,
    g = d.getElementsByTagName('body')[0];

    var windowWidth = w.innerWidth || e.clientWidth || g.clientWidth;

    if (windowWidth) {
        var windowHeight = w.innerHeight || e.clientHeight || g.clientHeight;

        var originalWidth = jssor_slider1.$OriginalWidth();
        var originalHeight = jssor_slider1.$OriginalHeight();

        if (originalWidth / windowWidth > originalHeight / windowHeight) {
            jssor_slider1.$ScaleWidth(windowWidth);

            var scaleHeight = jssor_slider1.$ScaleHeight();
            $Jssor$.$Css(wrapperElement, "marginTop", ((windowHeight - scaleHeight) / 2) + "px");
        }
        else {
            jssor_slider1.$ScaleHeight(windowHeight);
            $Jssor$.$Css(wrapperElement, "marginTop", "0px");
        }
    }
    else
        window.setTimeout(ScaleSlider, 30);
}

ScaleSlider();

$Jssor$.$AddEvent(window, "load", ScaleSlider);
$Jssor$.$AddEvent(window, "resize", ScaleSlider);
$Jssor$.$AddEvent(window, "orientationchange", ScaleSlider);
//responsive code end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44636592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档