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

调整窗口大小时的javascript移动列表项,javascript,css,angularjs,window-resize,Javascript,Css,Angularjs,Window Resize,我有一个项目列表(水平显示)和一个下拉列表。我试图了解如何在调整窗口大小时将项目从水平列表移动到下拉列表。基本上我只有一排可以放我的东西。如果不合适(添加列表项宽度),我想将它们放在下拉列表中。我用的是angularjs 更多 只需在控制器中设置$watch: $scope.$watch(function() { return $window.innerWidth; }, function(value) { console.log('windo

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


更多

只需在控制器中设置$watch:

$scope.$watch(function() {
    return $window.innerWidth;
}, function(value) {
    console.log('window inner width is now', value);
    yourFunctionToMoveListItem();
});
您应该使用
$window
服务,而不是javascript
window
,因为它更安全一些。。。从文件中引用:

虽然窗口在JavaScript中全局可用,但它会导致 可测试性问题,因为它是一个全局变量。在我们 始终通过$window服务引用它,因此它可能是 覆盖、移除或模拟以进行测试


只需在控制器中设置$watch:

$scope.$watch(function() {
    return $window.innerWidth;
}, function(value) {
    console.log('window inner width is now', value);
    yourFunctionToMoveListItem();
});
您应该使用
$window
服务,而不是javascript
window
,因为它更安全一些。。。从文件中引用:

虽然窗口在JavaScript中全局可用,但它会导致 可测试性问题,因为它是一个全局变量。在我们 始终通过$window服务引用它,因此它可能是 覆盖、移除或模拟以进行测试


调整窗口大小时,需要使用css媒体查询来显示/隐藏html元素。比如像这样

@media screen and (max-width: 300px) {
    .myClass {
        width: 100px;
    }
}

因为在代码片段中,您无法更改演示的页面大小并查看结果,所以我在

中创建了我的示例,在调整窗口大小时,您需要使用css媒体查询来显示/隐藏html元素。比如像这样

@media screen and (max-width: 300px) {
    .myClass {
        width: 100px;
    }
}

因为在代码片段中,您无法更改演示的页面大小并查看结果,所以我在

中创建了我的示例,在下拉列表中也有相同的内容,并使用媒体查询显示//隐藏。谢谢-这是一个好主意。但是,我需要能够计算水平项目的宽度?这是可能的吗?您不必计算宽度,只需定义几个媒体查询,例如,一个用于手机大小,一个用于平板电脑大小,一个用于桌面,然后确定水平项目的大小进入下拉列表,并在媒体查询中为该大小写下显示/隐藏的css规则。。。即使是主要的UI框架也是这样做的。但是如果我将类添加到所有的项中,我会让它们从水平列表移动到下拉列表中。我需要的是移动其中一些。你无法处理所有分辨率,如
499px
500px
501px
等等。相反,你们说若窗口小于500px,所有内容都会进入下拉列表。如果它是
500-1000px
2项进入下拉列表,并且在上面所有内容都是水平的,等等。就像我已经提到的,您需要为几个常见分辨率设计应用程序。了解如何使用著名的ui框架(如bootstrap)进行响应性设计。您需要做一些研究,了解当今使用的响应性、适应性设计。我无法在评论或回答中添加整个想法。不止这些。只需在下拉列表中包含相同的内容,并使用媒体查询显示//隐藏即可。谢谢-这是个好主意。但是,我需要能够计算水平项目的宽度?这是可能的吗?您不必计算宽度,只需定义几个媒体查询,例如,一个用于手机大小,一个用于平板电脑大小,一个用于桌面,然后确定水平项目的大小进入下拉列表,并在媒体查询中为该大小写下显示/隐藏的css规则。。。即使是主要的UI框架也是这样做的。但是如果我将类添加到所有的项中,我会让它们从水平列表移动到下拉列表中。我需要的是移动其中一些。你无法处理所有分辨率,如
499px
500px
501px
等等。相反,你们说若窗口小于500px,所有内容都会进入下拉列表。如果它是
500-1000px
2项进入下拉列表,并且在上面所有内容都是水平的,等等。就像我已经提到的,您需要为几个常见分辨率设计应用程序。了解如何使用著名的ui框架(如bootstrap)进行响应性设计。您需要做一些研究,了解当今使用的响应性、适应性设计。我无法在评论或回答中添加整个想法。不仅如此……当重新调整尺寸时,这可能会触发数百次。做响应性设计比做这样的事情更好…你可能是对的。。。我的只是一个问题的答案…:-)。。。虽然重新调整大小,但这可能会触发数百次。做响应性设计比做这样的事情更好…你可能是对的。。。我的回答只是一个问题…:-)很好的例子。但是,这将适用于所有项目。我需要将一些项目推到下拉列表中,而不是所有项目。因此,第一个列表仍然有可见的项目(可以放在一条水平线上),其余的项目需要转到下拉列表。很好的例子。但是,这将适用于所有项目。我需要将一些项目推到下拉列表中,而不是所有项目。因此,第一个列表仍然有可见的项目(可以放在一条水平线上),其余的项目需要转到下拉列表。