【问题标题】:Make horizontal scroll for bootsfaces modal为 bootsfaces 模态制作水平滚动
【发布时间】:2018-11-12 01:02:03
【问题描述】:

我正在使用 PrimeFaces 和 BootsFaces 库。我在 bootsfaces 模态中有一个小表格。该表单用于更改系统参数,对于一个特定的参数有一个<p:keyboard /> 来更改其值。我的问题是在超小型设备中,引导模式不允许水平滚动,并且键盘显示不完整:

默认情况下,当视口小于 510px 时键盘不响应,所以我在超小屏幕中将其默认调整为 436px。我想在模态上进行水平滚动只是为了查看完整的键盘,但只有当我打开模态时。

这是我根据屏幕大小调整键盘的javascript函数:

$(document).on('click', '.inpKeyboard', function() {//- The input text has a class called 'inpKeyboard'
    if ($(window).width() <= 505) {//- Small screen
        $('#keypad-div').css('width', '436px');
        $('#keypad-div').css('left', '0px');
        //$('.modal-open').css('overflow-x', 'auto');
    }

    $('#keypad-div').css('z-index', '2000');
});

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: css primefaces bootsfaces


    【解决方案1】:

    多么好的谜题啊! :) PrimeFaces 在 JavaScript 中计算键盘窗口的大小并将其存储为内联样式。所以解决这个问题的线索是添加一个超时,如下所示:

      <script>
      $(document).on('click', '.hasKeypad', () => {
            $('#keypad-div').css('z-index', '2000');
            if (!(window.width > 505)) { // JSF (i.e. XML) doesn't accept the less-than-operator
                  // add a timeout to make sure the code is executed after PrimeFaces did its magic
              setTimeout(() => {
                              // set a fixed with
                              $('#keypad-div').css('width', '436px');
                              // add the horizontal scrollbar
                              $('#keypad-div').css('overflow-x', 'auto');
                              // increase the height to make space for the scrollbar
                              $('#keypad-div').css('height', '180px');}
                       ,1);
            }
      });
      </script>
          <!-- set a minimum width for the keyboard rows -->
          <!-- (otherwise the key overflow to the next row) -->
          <style>
            @media screen and (max-width: 504px) {
              .keypad-row {
                min-width:470px;
              }
            }
      </style>
    

    【讨论】:

    • 非常感谢兄弟,我不得不使用 4 个 CSS 媒体查询来调整 .keypad-row 的宽度,因为首先使用 280px 视口,键盘没有足够的宽度来滚动完全。
    • 哇!在 280px 的情况下,我建议使用键盘的自定义布局。这很难看,因为它是非标准的,但在这种特殊情况下,它可能会提供更好的用户体验。
    • 别担心,我使用了 4 个媒体查询来根据视口宽度调整 .keypad-row 宽度。是的,它非常难看,但它对我有用:^)
    猜你喜欢
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-23
    • 1970-01-01
    相关资源
    最近更新 更多