图片预览插件 angular-photoswipe

依赖

依赖于:photoswipe,所以需要先引入:photoswipe.css, default-skin.css, photoswipe.min.js, photoswipe-ui-default.min.js, 再引入angular-photoswipe.min.js

app.module.js

ng.module('app', [ 'ngPhotoswipe']);

html

<!-- 图片预览 -->
<div ng-photoswipe 
  slide-selector={{vm.photoswipe.dom}}
  slides="vm.photoswipe.slides" 
  open="vm.photoswipe.open" 
  on-close="vm.photoswipe.closeFn()" 
  options="vm.photoswipe.opts"></div>

/* 需要点击预览的图片 */
<div>
  <img class="timg" ng-click="vm.photoswipe.showFn($index)" ng-repeat='x in datas' src="{{x.pic}}"/>
</div>


注:1.要放在header,footer同级 2:slide-selector必须要写个class名,否则报错

controller

/**
 * 预览大图:photoswipe  
 * 从服务器取到的图片数据
 * 
 */

function photoswipeFn(data){
  vm.photoswipe = {
    dom: '.timg', 
    slides: [], //图片数组
    open: false, //是否显示
    showFn: showFn, //显示
    closeFn: closeFn, //隐藏
    opts: {
      index: 0
    }
  };
  
  //预览大图
  vm.title = '查看大图';
  
  //显示
  function showFn(i) {
    if(angular.isDefined(i)) {
      vm.photoswipe.opts.index = i;
    }
    vm.photoswipe.open = true;
  };

  //隐藏
  function closeFn() {
    vm.photoswipe.open = false;
  };
  
  /**
   * 格式化图片列表
   * 根据屏幕尺寸计算图片新的的高度(后台传有图片尺寸)
   */
  angular.forEach(data, function(item){
    var obj = {
      src: item.pic_cover,
      w: 500, 
      h: 500
    };
    if(item.pic_size){
      var arr1 = item.pic_size.split(',');
      obj.w = screen.width;
      obj.h = obj.w * arr1[1] / arr1[0];
    }
    vm.photoswipe.slides.push(obj);
  })
  
}

注:1:须要给图片宽高, 否则报错 2:需要给定dom元素的class名

参考资料

github: https://github.com/m00s/angular-photoswipe

注:git上用法不详细,特此做一篇用法

需求

移动端商品详情页需要浏览详情图

前端环境

ionic, angular

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,245评论 1 45
  • 1 Webpack 1.1 概念简介 1.1.1 WebPack是什么 1、一个打包工具 2、一个模块加载工具 3...
    Kevin_Junbaozi阅读 11,776评论 0 16
  • 山里的城市有些低落 在细雨纷飞的灯光下 我和黑色的山羊默默前行 绕上过街天桥 再拐进空旷的通道 周围全是草场的味道...
    青木西阅读 1,657评论 0 0
  • 今天下午下班早,也不用看报告了,看完了《绝望的主妇》最后一季的最后三集。 这是我追的最长的,最认真的美剧了,当然英...
    深流_阅读 2,372评论 0 0

友情链接更多精彩内容