gpt4 book ai didi

javascript - 如何使 ng-click 必须仅在设备宽度 <480px 时触发?

转载 作者:行者123 更新时间:2023-11-30 20:00:44 25 4
gpt4 key购买 nike

我有一个场景,我需要 ng-click 来处理宽度小于 480px 的设备,但不能用于任何更大的设备。我已经尝试了 if 条件,但它不起作用。切换功能必须仅在较小的设备中工作,并且如果在较小的设备中切换,则列表在桌面 View 中不得受到影响。

我尝试了以下;

这是我的 Plunker

如有任何帮助,我们将不胜感激。

提前致谢。

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $window) {
$scope.width = $window.document.body.clientWidth;

if ($scope.width < 480) {
$scope.showList = false;
} else {
$scope.showList = true;
}
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>


<body ng-controller="myCtrl">
<div class="footer">
<div class="container">
<div class="row">
<div class="col-md-5 widget" ng-click="showList = !showList;">
<h2>sign in data</h2>
<article class="widget_content">
<ul ng-show="showList">
<li>Get a quote</li>
<li>Send quote</li>
</ul>
</article>
</div>
<div class="col-md-3 widget">
<h2>CONTACT US</h2>
<article class="widget_content">
<ul>
<li>Find a branch</li>
<li>Contact us</li>

</ul>
</article>
</div>
<div class="col-md-4 widget">
<h2>ABOUT</h2>
<article class="widget_content">
<ul>
<li>Careers</li>
<li>data</li>

</ul>
</article>
</div>
</div>
</div>
</div>

</body>

最佳答案

您将获得以下设备宽度

var width = (window.innerWidth > 0) ? window.innerWidth : screen.width;

您可以在点击处理程序中检查 if 条件。

if(width<480) {
handleClick();
}

var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $window) {
$scope.width = ($window.innerWidth > 0) ? $window.innerWidth : $window.document.body.clientWidth;
if ($scope.width < 480) {
$scope.showList = false;
} else {
$scope.showList = true;
}
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

<body ng-controller="myCtrl">
<div class="footer">
<div class="container">
<div class="row">
<div class="col-md-5 widget" ng-click="showList = !showList;">
<h2>sign in data</h2>
<article class="widget_content">
<ul ng-show="showList">
<li>Get a quote</li>
<li>Send quote</li>
</ul>
</article>
</div>
<div class="col-md-3 widget">
<h2>CONTACT US</h2>
<article class="widget_content">
<ul>
<li>Find a branch</li>
<li>Contact us</li>

</ul>
</article>
</div>
<div class="col-md-4 widget">
<h2>ABOUT</h2>
<article class="widget_content">
<ul>
<li>Careers</li>
<li>data</li>
</ul>
</article>
</div>
</div>
</div>
</div>
</body>

如果你愿意,你可以创建一个指令

app.directive('myDirective', ['$window', function ($window) {

return {
link: link,
restrict: 'A'
};

function link(scope, element, attrs){
angular.element($window).bind('resize', function(){
scope.width= $window.innerWidth;
});
}
}]);

然后在你的 div 上使用它:

<div my-directive ng-if="width > 320">

关于javascript - 如何使 ng-click 必须仅在设备宽度 <480px 时触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53405587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com