Rails:有没有办法确定观看者是从肖像还是风景?

时间:2017-05-08 00:28:10

标签: ruby-on-rails ruby

在我的Rails 5应用程序中,如果用户在平板电脑上以纵向方向查看它,而不是在平板电脑上查看平板电脑,我想制作菜单显示选项。

我使用Browser gem来检查此人是否在平板电脑上。

我的观点如下:

<nav class="navbar"> 
  <% if browser.device.tablet? %>
    <li> 
      <%= link_to "Shop", shop_path %>
    </li>  

    # how do I check if someone is viewing in portrait orientation? 
    <li>          
      <%= link_to "About", about_path %> 
    </li>
    # end portrait orientation        

  <% end %>
</nav>

有没有办法使用Ruby检查页面方向?谢谢!

1 个答案:

答案 0 :(得分:1)

我不知道有任何方法可以检测Ruby的方向,但您可以使用jQuery Mobile,使用orientationchange事件:

$(window).on('orientationchange', function() {
  // your code...
});

例如:

$(window).on('orientationchange', function() {
  if(window.orientation == 0) {
     // 0 is for portrait
     $('portrait-only').show();
  } else { 
     $('portrait-only').hide();
  }
});

现在,在您的表单上,将id添加到<li>标记:

<li id="portrait-only">          
  <%= link_to "About", about_path %> 
</li>

每次旋转设备时都会隐藏/显示该元素。

要在初始加载时检测,只需在加载时检查window.orientation

$(document).ready(function() {
    if(window.orientation == 0) {
      // same as above
    }
)};