【问题标题】:Make Mobiscroll height and width responsive使 Mobiscroll 高度和宽度响应
【发布时间】:2012-11-01 03:18:11
【问题描述】:

使用 Mobiscroll,高度和宽度在原始 JQuery 实现中设置。当屏幕尺寸改变时,我目前的宽度和高度随着 CSS @media 查询而改变。我想知道原始 JQuery 实现是否有办法。

我的 JQuery

$('ul.scroll-list select').scroller({
    preset: 'select',
    theme: 'ios',
    display: 'inline',
    mode: 'scroller',
    inputClass: 'i-txt',
    width: 50,
    height:50,
    onShow: function (html, instance) {
       $("input[id$='_dummy'], .scroll-list label").hide();
    }
});

我的 CSS

@media only screen and (max-width: 959px) {
    .ios .dww li {font-size:0.7em;}
    .dww.dwrc {height:150px !important;}
}

想知道是否有更简洁的方法,通过主题或一些 JQuery 实现。

谢谢!

【问题讨论】:

    标签: jquery css mobiscroll


    【解决方案1】:

    你可以通过.width()获取屏幕宽度来做到这一点

    $(selector).width(); //get the width you want 
    $(window).width();   // returns width of browser viewport
    $(document).width(); // returns width of HTML document
    

    【讨论】:

    • 太好了,感谢 NullPointer 的帮助。我已经发布了我的最终代码作为答案。
    • 再次感谢您对此的回复,效果很好。我现在遇到的问题是,当您在手机上更改方向时,尺寸会发生变化。整个网站使用@mediaqueries 调整大小,但由于在 Javascript 中设置了高度和宽度,因此在您刷新浏览器之前它不会调整大小。这是解决方案吗?再次感谢
    【解决方案2】:

    我解决了这个问题,这是最终代码:

    // Add mobi scroller to fares page
        var scrollWidth = $('.scroll-list li').width() - 10;
        var scrollHeight = $('.scroll-list li').height();
    
        $('ul.scroll-list select').scroller({
            preset: 'select',
            theme: 'ios',
            display: 'inline',
            mode: 'scroller',
            inputClass: 'i-txt',
            width: scrollWidth,
            height: scrollHeight,
            onShow: function (html, instance) {
               $("input[id$='_dummy'], .scroll-list label").hide();
            }
        });
    

    【讨论】:

      【解决方案3】:

      这是我为调整方向更改的 mobiscroll 日期控件大小所做的操作:

       function setDatePickerWidthAndHeight()
       { 
          var scrollWidth = ($("div[id='main_content']").width()) / 4;
          var scrollHeight = scrollWidth / 2.5;
          var selectorBase1 = "date_1";
          $("#input_" + selectorBase1).eq(0).scroller('option', 'width', scrollWidth);
          $("#input_" + selectorBase1).eq(0).scroller('option', 'height', scrollHeight);
       }
      
       $(function () {
       $(window).bind('orientationchange', function (event) {
                      setTimeout(setDatePickerWidthAndHeight(),100);
                  });
       }
      

      另外,我在媒体查询中使用了与此类似的 css(与您的差别不大)来调整字体大小(“.dwwr td”不在媒体查询中):

      .dww li {
          font-size: 3.25em;
          }
      .dwwr td {
          padding: 0;
      }
      

      我使用与您类似的代码来初始化宽度和高度。

      我不确定 .eq(0) 是什么,我不记得我在哪里看到其他人这样做但它有效......唯一的问题是在一些旧手机上它似乎很慢在几次方向更改后,手机的浏览器崩溃并最终崩溃。

      注意:我认为宽度和高度属性是针对一个滚动条的,因此是“/ 4”。由于有 3 个滚动条,如果我将宽度除以 4,它应该始终适合页面并考虑填充和边距。

      在他们的documentation 中没有“.eq(0)”的示例

      编辑:

      Here 是我看到“.eq(0)”的地方。

      编辑:

      post,我找到了一种让方向改变更好地工作的方法。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-18
      • 2013-09-06
      • 2020-06-14
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多