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.ui.draggable中文文档
Nov 24 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
Jul 22 Javascript
原生javaScript实现图片延时加载的方法
Dec 22 Javascript
node.js调用C++开发的模块实例
Jul 03 Javascript
JavaScript、tab切换完整版(自动切换、鼠标移入停止、移开运行)
Jan 05 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
Dec 08 Javascript
在React中如何优雅的处理事件响应详解
Jul 24 Javascript
Bootstrap Table列宽拖动的方法
Aug 15 Javascript
vue组件之间通信实例总结(点赞功能)
Dec 05 Javascript
js实现掷骰子小游戏
Oct 24 Javascript
jQuery加PHP实现图片上传并提交的示例代码
Jul 16 jQuery
ant-design-vue中tree增删改的操作方法
Nov 03 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
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
代码生成器 document.write()
2007/04/15 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
火狐下table中创建form导致两个table之间出现空白
2013/09/02 Javascript
jquery操作checkbox实现全选和取消全选
2014/05/02 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
Jquery的基本对象转换和文档加载用法实例
2015/02/25 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
基于jQuery实现顶部导航栏功能
2016/12/27 Javascript
简单实现jQuery级联菜单
2017/01/09 Javascript
vue + webpack如何绕过QQ音乐接口对host的验证详解
2018/07/01 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
[01:51]2014DOTA2国际邀请赛 这个赛场没有失败者VGTi5再见
2014/07/23 DOTA
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
Python+django实现文件下载
2016/01/17 Python
python:socket传输大文件示例
2017/01/18 Python
对python中url参数编码与解码的实例详解
2019/07/25 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
python jenkins 打包构建代码的示例代码
2019/11/29 Python
Python with标签使用方法解析
2020/01/17 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
Python selenium文件上传下载功能代码实例
2020/04/13 Python
keras中的loss、optimizer、metrics用法
2020/06/15 Python
python中scipy.stats产生随机数实例讲解
2021/02/19 Python
C语言开发工程师测试题
2016/12/20 面试题
护理专业本科生自荐信
2013/10/01 职场文书
毕业生自荐信
2013/12/14 职场文书
学习党课思想汇报
2013/12/29 职场文书
一夜的工作教学反思
2014/02/08 职场文书
个人评语大全
2014/05/04 职场文书
低碳环保标语
2014/06/12 职场文书
英语邀请函范文
2015/02/02 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL