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 相关文章推荐
javascript setTimeout和setInterval 的区别
Dec 08 Javascript
用javascript获取当页面上鼠标光标位置和触发事件的对象的代码
Dec 09 Javascript
JavaScript的类型转换(字符转数字 数字转字符)
Aug 30 Javascript
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
Jun 20 Javascript
在浏览器窗口上添加遮罩层的方法
Nov 12 Javascript
JS简单实现登陆验证附效果图
Nov 19 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
使用CoffeeScrip优美方式编写javascript代码
Oct 28 Javascript
jQuery中Find选择器用法示例
Sep 21 Javascript
微信小程序中的onLoad详解及简单实例
Apr 05 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
Apr 11 Javascript
es6函数name属性功能与用法实例分析
Apr 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编程网上资源导航
2006/10/09 PHP
php如何调用webservice应用介绍
2012/11/24 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
php获取指定(访客)IP所有信息(地址、邮政编码、国家、经纬度等)的方法
2015/07/06 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
php中array_column函数简单实现方法
2016/07/11 PHP
JS函数实现动态添加CSS样式表文件
2012/12/15 Javascript
js中通过split函数分割字符串成数组小例子
2013/09/21 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
最短的IE判断var ie=!-[1,]分析
2014/05/28 Javascript
详解angular中的作用域及继承
2017/05/31 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
vue 解决computed修改data数据的问题
2019/11/06 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
用virtualenv建立多个Python独立虚拟开发环境
2017/07/06 Python
使用Python搭建虚拟环境的配置方法
2018/02/28 Python
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
python如何实现复制目录到指定目录
2020/02/13 Python
Python GUI编程学习笔记之tkinter界面布局显示详解
2020/03/30 Python
numpy库reshape用法详解
2020/04/19 Python
python使用Thread的setDaemon启动后台线程教程
2020/04/25 Python
python自定义函数def的应用详解
2020/06/03 Python
matplotlib之属性组合包(cycler)的使用
2021/02/24 Python
HTML5中的强制下载属性download使用实例解析
2016/05/12 HTML / CSS
存储过程的优缺点是什么
2015/01/10 面试题
面向对象设计的原则是什么
2013/02/13 面试题
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
2014年妇委会工作总结
2014/12/10 职场文书
事业单位年度考核评语
2014/12/31 职场文书
有关水浒传的读书笔记
2015/06/25 职场文书
2016大学军训心得体会
2016/01/11 职场文书
MySQL分库分表与分区的入门指南
2021/04/22 MySQL