javascript - 如何根据屏幕尺寸更改 Angular JS 中的弹出框位置?

标签 javascript jquery angularjs popover

这是我在 AngularJs 应用程序中的代码。

<div class="col-lg-10 col-md-10 col-sm-10 col-xs-10 myMoodTitle">
    <span class="headText">My Mood</span>
    <a id="openMyMoodMsgBox" class="fa fa-question-circle     tooltipInfo" uib-popover-template="'chatMySettingsMoodPopover.html'" popover-class="chat-mysettings-mymood" ng-click="open('1')" popover-is-open="isOpen1"></a>
</div>

上面的代码,我没有使用popover-placement标签。我想在屏幕分辨率小于 768px 时更改此设置,它将显示 popover-placement 位于底部。 我正在尝试以下这种方式,但它不起作用:

var $iW = $(window).innerWidth();
if ($iW < 768){
    $('.chat-mysettings-mymood').popover({placement: 'bottom'});
}
else{
    $('.chat-mysettings-mymood').popover({placement: 'right'});
};

这里,chat-mysettings-mymood 是弹出框类名称。我正在尝试解决这个问题,但失败了,并且此代码不起作用。

当我在 popover-class 标签旁边使用 popover-placement="right" 标签时,它可以工作,但如何根据我的屏幕分辨率来控制它?

最佳答案

对弹出框放置使用 Angular 表达式:

<a id="openMyMoodMsgBox" 
   class="fa fa-question-circle tooltipInfo" 
   uib-popover-template="'chatMySettingsMoodPopover.html'" 
   popover-placement="{{ placement }}" 
   popover-class="chat-mysettings-mymood" 
   ng-click="open('1')" 
   popover-is-open="isOpen1"></a>

JS文件:

angular.module('ui.bootstrap.demo', ['ngAnimate', 'ngSanitize', 'ui.bootstrap']);
angular.module('ui.bootstrap.demo').controller('PopoverDemoCtrl', function ($scope, $timeout) {
  $scope.isOpen1 = true;

  updatePlacement();

  $(window).on('resize', updatePlacement);

  function updatePlacement () {
    $timeout(function () {
      console.log('W = ' + $(window).innerWidth());
      $scope.placement = $(window).innerWidth() < 768 ? 'bottom' : 'right';
    });
  }
});

骗子:https://plnkr.co/edit/Iy9y71YUWcYD1vvykQH9?p=preview

关于javascript - 如何根据屏幕尺寸更改 Angular JS 中的弹出框位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40190712/

相关文章:

javascript - 在 JavaScript 中获取 CSS 动画的状态并将其打印在元素内或控制台上,以便稍后对其进行操作

javascript - 嵌套函数 Javascript

javascript - Spotify api 1.0.0 获取给定轨道集的播放列表的图像

javascript - 带有 ng-if 的 Angular 指令似乎失去了模型

Javascript 闭包和 onload

javascript - jQuery 哪个 eq 类

javascript - 在 jQuery 中定位上一类时遇到问题

jquery - select2永久打开下拉列表

html - AngularJS ng-点击 li 图标

javascript - 无法使用 Angular JS 在 CountUp 的 data-endVal ="{{ucount}}"中设置值