javascript在窗口调整大小时移动列表项

标签 javascript css angularjs window-resize

我有一个元素列表(水平显示)和一个下拉列表。我试图了解如何在窗口调整大小时将元素从水平列表移动到下拉列表。基本上我只有一排可以放我的东西。如果它不适合(添加列表项宽度),我想将它们放在下拉列表中。我正在使用 angularjs。

<div class="name-list">
  <ul class="horizontal">
    <li><a href="#">item 1</a>
    </li>
    <li><a href="#">item 2</a>
    </li>
    <li><a href="#">item 3</a>
    </li>
  </ul>
</div>

<div class="dropdown more-names">
  <button>More</button>
  <ul class="dropdown">
    <li><a href="#">item 4</a>
    </li>
    <li><a href="#">item 5</a>
    </li>
    <li><a href="#">item 6</a>
    </li>
  </ul>
</div>

最佳答案

只需在 Controller 中设置 $watch 即可:

$scope.$watch(function() {
    return $window.innerWidth;
}, function(value) {
    console.log('window inner width is now', value);
    yourFunctionToMoveListItem();
});

你应该使用 $window 服务,而不是 javascript window,因为它更安全......引用文档:

While window is globally available in JavaScript, it causes testability problems, because it is a global variable. In angular we always refer to it through the $window service, so it may be overridden, removed or mocked for testing.

关于javascript在窗口调整大小时移动列表项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37046414/

相关文章:

javascript - 如何使用 Jasmine 监视静态类方法

javascript - 如何在 Intellij 的 GLOBAL 范围内使用 Node.js 库启用代码完成?

css - 如何垂直拆分 2 种颜色的文本?

html - 使用 CSS 创建响应式网页(需要有关页面宽度的帮助)

javascript - Angular 插入数组对象

javascript - 为什么 chrome 和 firefox 在 moment js 中给出不同的输出?

javascript - ReactJS this.props 不显示

javascript - 在 DIV 中重复图像后跟另一个图像

javascript - 根据 ng-repeat 内的条件添加模型值

javascript - 如何使用 angularJS 存储登录信息