javascript实现支持移动设备画廊


Posted in Javascript onAugust 24, 2015

这是一款不依赖任何js框架、纯javascript实现的画廊效果。它支持移动设备手势操作,如手势触摸滑动、放大和关闭图片,它还支持PC上的键盘操作,总之它是WEB开发者不可或缺的图片画廊插件,它叫photoswipe。

展示效果图如下:

javascript实现支持移动设备画廊

查看演示 下载源码

HTML

首先加载所需的CSS和js文件。

<link rel="stylesheet" href="css/photoswipe.css"> 
<link rel="stylesheet" href="css/default-skin/default-skin.css"> 
<script src="js/photoswipe.min.js"></script> 
<script src="js/photoswipe-ui-default.min.js"></script>

以上文件大家不要担心,月光光都打包好了,您只管下载拿去用就是。

接下来,准备body里的HTML部分。我们在页面里准备图片缩略图,当点击这张缩略图时,会弹出对应的大图集,我们准备

HTML结构如下:

<div id="photos"> 
 <img src="images/s1_m.jpg" alt="Image description" /> 
 <p>图集</p> 
</div>

现在,重要的画廊展示部分将为大图展示提供架构,注意以下代码中的元素:.pswp__bg, .pswp__scroll-wrap, .pswp__container 和 .pswp__item这几个Div不可更改。

<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true"> 
 <div class="pswp__bg"></div> 
 <div class="pswp__scroll-wrap"> 
  <div class="pswp__container"> 
   <div class="pswp__item"></div> 
   <div class="pswp__item"></div> 
   <div class="pswp__item"></div> 
  </div> 
  <div class="pswp__ui pswp__ui--hidden"> 
   <div class="pswp__top-bar"> 
    <div class="pswp__counter"></div> 
    <button class="pswp__button pswp__button--close" title="Close (Esc)"></button> 
    <button class="pswp__button pswp__button--share" title="Share"></button> 
    <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button> 
    <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button> 
    <div class="pswp__preloader"> 
     <div class="pswp__preloader__icn"> 
      <div class="pswp__preloader__cut"> 
      <div class="pswp__preloader__donut"></div> 
      </div> 
     </div> 
    </div> 
   </div> 
   <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap"> 
    <div class="pswp__share-tooltip"></div> 
   </div> 
   <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"> 
   </button> 
   <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"> 
   </button> 
   <div class="pswp__caption"> 
    <div class="pswp__caption__center"></div> 
   </div> 
   </div> 
  </div> 
</div>

以上HTML结构定义了画廊展示的内容、工具、方向按钮、标题说明等元素。

Javascript

我们在js里定义图集图片集合(当然也可以像demo2一样在html部分定义图片集),设置各种选项,然后通过使用new PhotoSwipe()来调用photoSwipe插件。

var openPhotoSwipe = function() { 
 var pswpElement = document.querySelectorAll('.pswp')[0]; 
 //定义图片集合 
 var items = [ 
  { 
   src: 'images/s1.jpg', 
   w: 800, 
   h: 1142 
  }, 
  { 
   src: 'images/s2.jpg', 
   w: 800, 
   h: 1142 
  } 
 ]; 
 var options = { 
  history: false, 
  focus: false, 
  showAnimationDuration: 0, 
  hideAnimationDuration: 0 
 }; 
 var gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options); 
 gallery.init(); 
}; 


//点击图集元素时触发调用openPhotoSwipe 

document.getElementById('photos').onclick = openPhotoSwipe;

大家可以将该款插件应用到移动项目中去,更多选项设置请参考PhotoSwipe项目地址:<https://github.com/dimsemenov/photoswipe。

以上内容就是javascript实现支持移动设备画廊的全部内容,希望大家喜欢。

Javascript 相关文章推荐
基于JQuery的Select选择框的华丽变身
Aug 23 Javascript
url参数中有+、空格、=、%、&amp;、#等特殊符号的问题解决
May 15 Javascript
不使用浏览器运行javascript代码的方法
Jul 24 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
Dec 25 Javascript
跟我学习javascript的最新标准ES6
Nov 20 Javascript
JavaScript弹窗基础篇
Apr 27 Javascript
全面解析标签页的切换方式
Aug 21 Javascript
JavaScript学习笔记--常用的互动方法
Dec 07 Javascript
JS简单获取当前日期和农历日期的方法
Apr 17 Javascript
ES6扩展运算符用法实例分析
Oct 31 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
May 10 jQuery
vue+egg+jwt实现登录验证的示例代码
May 18 Javascript
js实现带圆角的两级导航菜单效果代码
Aug 24 #Javascript
jQuery实现的手机发送验证码倒计时效果代码分享
Aug 24 #Javascript
js实现适用于素材网站的黑色多级菜单导航条效果
Aug 24 #Javascript
如何屏蔽防止别的网站嵌入框架代码
Aug 24 #Javascript
纯css实现窗户玻璃雨滴逼真效果
Aug 23 #Javascript
简单纯js实现点击切换TAB标签实例
Aug 23 #Javascript
基于jquery实现导航菜单高亮显示(两种方法)
Aug 23 #Javascript
You might like
php 中文字符入库或显示乱码问题的解决方法
2010/04/12 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
PHP abstract 抽象类定义与用法示例
2018/05/29 PHP
PHP 数组操作详解【遍历、指针、函数等】
2020/05/13 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
js中判断文本框是否为空的两种方法
2011/07/31 Javascript
基于jquery可配置循环左右滚动例子
2011/09/09 Javascript
javascript操作JSON的要领总结
2012/12/09 Javascript
JQuery之focus函数使用介绍
2013/08/20 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
2016/07/19 Javascript
Node.js  事件循环详解及实例
2017/08/06 Javascript
JS点击图片弹出文件选择框并覆盖原图功能的实现代码
2017/08/25 Javascript
Vue循环遍历选项赋值到对应控件的实现方法
2020/06/22 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[59:35]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第二局
2016/03/04 DOTA
Python中set与frozenset方法和区别详解
2016/05/23 Python
python 读取dicom文件,生成info.txt和raw文件的方法
2019/01/24 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
浅析Python requests 模块
2020/10/09 Python
HTML5新标签兼容——&gt; 的两种方法
2018/09/12 HTML / CSS
美国在线家居装饰店:Belle&June
2018/10/24 全球购物
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
高中生期末评语大全
2014/01/28 职场文书
临床护理求职信
2014/04/26 职场文书
地球一小时宣传标语
2014/06/24 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
赤壁观后感(2)
2015/06/15 职场文书
成事在人观后感
2015/06/16 职场文书
2016年国培研修日志
2015/11/13 职场文书
python中pandas.read_csv()函数的深入讲解
2021/03/29 Python
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电