javascript - 通过angular js中的数据属性根据屏幕尺寸更改图像源

标签 javascript angularjs angularjs-directive

我们如何通过数据属性在 Angular js 中根据屏幕大小更改图像源。请在 Angular js 中提出适当的方法。

  <img src="abc.jpg" data-desktop="abc.jpg" data-tablet="xyz.png" data-mobile="bcd.jpg" >

最佳答案

您可以使用自定义指令实现此目的。查看工作插件:http://plnkr.co/edit/7oVbjaK0QQPHGjyWzfrA?p=preview

HTML:

<img src="default.jpg" small="small.jpg" big="big.jpg" change-on-screen-resize />

指令:

app.directive("changeOnScreenResize", ["$window", function($window) {
  return {
    restrict: 'A',
    link: function(scope, elem, attrs) {
      $window.onresize = function() {
        changeImage();
        scope.$apply();
      }

      //no such method 'on' for $window
      //$window.on('resize', function(){
      //});

      changeImage();

      function changeImage() {
        var screenWidth = $window.innerWidth;

        if(screenWidth <= 400) {
          //attrs.src = attrs.small;
          elem.attr('src', attrs.small);
        } else {
          elem.attr('src', attrs.big);
        }
      }
    }
  };
}])

关于javascript - 通过angular js中的数据属性根据屏幕尺寸更改图像源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37034274/

相关文章:

javascript - Cordova 和 ionic : plugin not updating

javascript - 如何通过检查 JavaScript 中的属性值来查找数组中对象的索引?

AngularJS 的 javascript 执行顺序

加载 Ng-Repeat 元素后运行的 jQuery Swiper 脚本

javascript - Vue.js 数据在 created() 函数中不可用

javascript - 有没有办法为 createElement 对象分配唯一 ID?

html - 限制 HTML 和 AngularJs 中的特殊字符

javascript - 在指令的子元素上绑定(bind)单击事件

javascript - Angular ng-repeat 类似参数绑定(bind)

javascript - 将设置传递给 AngularJS 应用程序