【问题标题】:Angularjs hide and show according to screen size responsiveAngularjs根据屏幕大小响应隐藏和显示
【发布时间】:2016-08-12 13:56:15
【问题描述】:

大家好,我正在努力实现这一目标

当用户在桌面上时,他应该在访问页面时看到块,用户在移动时应该看到按钮,然后他应该能够切换它。

我可以通过设置使用 CSS 媒体查询来显示按钮 display: none 当屏幕尺寸 display: none 到 block 通过添加 ng-click="showBlocks={'display': 'block'}

但我不确定如何让它在某种意义上发挥作用,当我再次单击它时,它应该再次隐藏块。

我已经尝试过 ng-hide/show 但它不起作用,除非我删除 display:none 的移动尺寸,当我删除它时,我无法看到块首次访问该页面。

请帮帮我,我在这上面浪费了很多时间。提前致谢

【问题讨论】:

  • 有一个 div 包含您通常想要的视图和另一个用于移动设备的视图。根据屏幕尺寸隐藏/显示它们。对于移动设备,只需实现切换块的逻辑即可。
  • @JeremyJackson 我试过但没用,因为当我访问它时,它会显示移动大小的块

标签: javascript css angularjs responsive-design


【解决方案1】:

如果没有代码示例,就很难知道你在哪里。如果您设法获得隐藏块的按钮(就像您对ng-click="showBlocks={'display': 'block'} 所说的那样),那么添加一个变量就足够了。将此添加到按钮元素:

ng-init="show=true;" ng-click="show = !show; showBlocks={'display': (show?'block':'none')};"

如果可行,则将初始化逻辑移至控制器以保持清洁。

【讨论】:

  • 非常感谢@chris 你太棒了。从昨天开始我就疯了
  • 快速提问,它现在可以工作了,但是在我点击按钮两次之后它就可以工作,然后单击它就可以工作
  • 不确定是什么原因造成的。你能用你的代码设置一个 plunker 来检查你在做什么吗?可能是引导冲突或其他库。
【解决方案2】:

您可以在该元素上添加一个类,如果用户单击该按钮并使用 CSS 中的 !important 标志,或者简单地在媒体查询下方定义该规则以给予该 CSS 更高的优先级,您可以在该元素上添加一个类类。

假设您在用户切换时添加force-show 类:

.force-show {
    display: block !important
}

请参阅下面的示例。 使用“整页”链接模拟以下示例中的桌面视图

var app = angular.module("sa", []);

app.controller("FooController", function($scope) {

});
.block {
  height: 100px;
  background: #ddd;
}
button {
  display: none
}
@media (max-width: 767px) {
  .block {
    display: none;
  }
  button {
    display: block;
  }
}
.force-show {
  display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="sa" ng-controller="FooController">
  <div class="block" ng-class="{'force-show': showBlock}">
    I'll only be visible on desktop or using button on mobile.
  </div>

  <button ng-click="showBlock = !showBlock">Toggle blocks
  </button>
</div>

【讨论】:

  • 我可以显示块,但我无法解锁按钮,我的意思是不知道如何实现它。我正在应用 display: block 当用户点击它但不确定如何删除第二次点击时应用的样式
  • 也试过了,但是由于显示,按钮不起作用:无
猜你喜欢
  • 1970-01-01
  • 2022-08-14
  • 1970-01-01
  • 2017-11-14
  • 2014-09-18
  • 2017-08-20
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
相关资源
最近更新 更多