photoswipe js——移动端图片文字放大缩小

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
               

指势触控

简介

       PhotoSwipe 是专为移动触摸设备设计的相册/画廊,支持触控网页上所有内容放大缩小,兼容所有iPhone、iPad、黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品。


使用方法

1、引入文件

  1. <!-- 必须先引用klass,如需要提高加载速度,可以给 script加上defer 标记/属性-->  
  2. <script type="text/javascript" src="klass.min.js"></script>  
  3. <!-- 重要提示,如果不使用jQuery版本,在IE下面会出错,当然,使用jQuery版本,则需要引入jQuery-->  
  4. <script type="text/javascript" src="code.photoswipe-3.0.5.min.js"></script>  

调用代码

/* 添加DOMContentLoaded 事件监听,类似于jQuery的 ready函数.  
  1.  默认方式 examples/01-default.html 
  2.  无缩略图模式请查看.examples/09-exclusive-mode-no-thumbnails.html 
  3. */  
  4. // PhotoSwipe.attach 方法接收3个参数(HTML元素集合,可选配置信息,可选多实例时string类型的ID)  
  5. document.addEventListener('DOMContentLoaded'function(){  
  6.     //设置 PhotoSwipe绑定为 id为Gallery的容器下的所有<a>标签.点击就会激活  
  7.     // 此处的对象,就是PhotoSwipe实例,可以使用相应的方法,例如 show(0),hide()等.  
  8.     var myPhotoSwipe = Code.PhotoSwipe.attach( window.document.querySelectorAll('#Gallery a'), { enableMouseWheel: false , enableKeyboard: false } );  
  9. }, false);  


如果使用 jQuery ,则调用代码如下:
// 示例详见examples/02-jquery.html   
  1. $(document).ready(function(){  
  2.     // 此处的对象,就是PhotoSwipe实例,可以使用相应的方法,例如 show(0),hide()等.  
  3.     var myPhotoSwipe = $("#Gallery a").photoSwipe({ enableMouseWheel: false , enableKeyboard: false });  
  4. });  

2、HTML

<!-- ul li 之类是用于显示缩略图的,也可以根据需要调整.<a>下面的<img> 元素,即为缩略图,如果不需要,则src设置为空即可 -->   
  1. <ul id="Gallery">  
  2.     <li><a href="images/full/01.jpg"><img src="images/thumb/01.jpg" alt="Image 01" /></a></li>  
  3.     <li><a href="images/full/02.jpg"><img src="images/thumb/02.jpg" alt="Image 02" /></a></li>  
  4.     <li><a href="images/full/03.jpg"><img src="images/thumb/03.jpg" alt="Image 03" /></a></li>  
  5.     <li><a href="images/full/04.jpg"><img src="images/thumb/04.jpg" alt="Image 04" /></a></li>  
  6.     <li><a href="images/full/05.jpg"><img src="images/thumb/05.jpg" alt="Image 05" /></a></li>  
  7.     <li><a href="images/full/06.jpg"><img src="images/thumb/06.jpg" alt="Image 06" /></a></li>  
  8. </ul>  

参数说明

自定义函数
  1. getToolbar: function(){  
  2.     /*返回 要在Toolbar之中显示的HTML字符串*/  
  3. },  
  4. getImageSource: function(el){  
  5.     /* 告诉 gallery如何获取图片的src, 
  6.      默认情况下,gallery假设你使用<a>标签包装了<img>缩略图,而<a>标签的href属性即为完整图片的URL。 
  7.      此时可以使用本方法来返回对应元素的图片的路径。可以是各种各样的。比如rel属性什么的。有jQuery那就更简单了。 
  8.     */  
  9.     return el.getAttribute('rel');   
  10. },  
  11. getImageCaption: function(el){  
  12.     /** 
  13.     如同 getImageSource 方法一样,此方法返回图片的标题,默认情况下gallery查找图片的alt 属性。 
  14.     */  
  15. },  
  16. getImageMetaData: function(el){  
  17.     /** 
  18.     如果你监听了 onDisplayImage,那么你可以通过此函数获取额外的元信息.并在 onDisplayImage中使用 
  19.     */  
  20.     return {  
  21.         longDescription: el.getAttribute(el, 'data-long-description')  
  22.     }  
  23. }  


针对android 手机一次点按,会引起一层关闭后,底上的层依然会触发点击事件的问题,我们的解决方案如下:
  1. // 在android 手机上多个层次触发点击,我们采用的是用定时器进行拦截  
  2.   
  3. var event_timeout = 500;// 预防多次事件触发   
  4. // 阻止短时间内连续事件  
  5. var multiClickPrevent = false;  
  6. function preventMultiClick(){  
  7.     if(multiClickPrevent){  
  8.       return false;  
  9.     }  
  10.     multiClickPrevent = true;  
  11.     window.setTimeout(function(){  
  12.         multiClickPrevent = false;  
  13.     },event_timeout);  
  14.     return true;  
  15. };  
  16.   
  17. // 适配浏览器  
  18. var useragent = navigator.userAgent;  
  19. var likeIOS = useragent.match(/iPad|iPhone|iPod/i);  
  20. var likeAndroid = useragent.match(/android/i);  
  21. var specialClick = "click";  
  22. if(likeIOS){  
  23.     specialClick = "touchstart click";  
  24. else if(likeAndroid){  
  25.     specialClick = "touchstart click";  
  26. }  
  27.   
  28. / 示例  
  29. $(".t_right").live(specialClick,function(){  
  30.     if(preventMultiClick()){   
  31.         // 执行其他操作  
  32.     } else {  
  33.         // else 就是拒绝操作啦,可以直接返回 false 之类的  
  34.         return false;  
  35.     }  
  36. });  
  37. // 示例  
  38. $("body").live(specialClick,function(){  
  39.     if(preventMultiClick()){  
  40.         // 执行其他操作  
  41.     }  
  42. });  


           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

PhotoSwipe.js 相册展示插件学习 PhotoSwipe.js官网:http://photoswipe.com/ ,在这个网站上可以下载到PhotoSwipe的文件以及相关的例子。 这个组件主要是用来展示图片、相册用的,还是很实用的。   一、使用这个组件需要引入两个js文件: 1 2 二、然后页面结构可以是这样子的: div id="Gallery"> div class="gallery 阅读详情

相关推荐

鸿蒙基于开源项目photoSwipe—如何实现点击预览图片放大缩小特效、图片轮播功能

项目名称:PhotoSwipeJs_ohos(相册画廊组件)所属系列:鸿蒙的第三方组件适配移植功能:实现点击预览图片放大缩小特效、手指滑动,其他功能有标题栏等项目移植状态:100%,已完成核心功能移植调用差异:功能重构编程语言:Js外部库依赖:无开发版本:sdk7(版本向下兼容),DevEco Studio3.0 beta1。

m0_70749039的博客 1578

手机端点击图片放大特效PhotoSwipe.js插件实现

主要为大家详细介绍了手机端点击图片放大特效PhotoSwipe.js插件实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

前端100道八股文+50道场景题

闭包是指一个函数能够访问它外部函数作用域中的变量,即使外部函数已经执行完毕。形成闭包需要三个条件:函数嵌套、内部函数引用外部变量、外部函数返回内部函数。闭包的主要作用有三个:第一,实现数据私有化。比如可以用闭包创建私有变量,外部无法直接访问,只能通过特定方法操作。第二,模块化。可以用闭包封装代码,只暴露需要的接口。第三,函数柯里化和防抖节流等高级技巧都会用到闭包。闭包的缺点是可能造成内存泄漏。因为闭包引用的外部变量不会被垃圾回收,如果大量使用闭包且不及时清理,会占用过多内存。

weixin_50762268的博客 1297

PhotoSwipe.js_支持移动手机的纯js

PhotoSwipe.js_支持移动手机的纯js

移动web HTML5使用photoswipe模仿微信朋友圈图片放大浏览

http://www.cnblogs.com/theroad/p/5397229.html 使用js框架是PhotoSwipePhotoSwipe是一个图片放大插件,兼容pc和移动端,经历过多个版本的迭代且一直在不断更新,踩过的坑不知凡几,在移动端有着巨大的优势。1、可控制多种风格如:标题、分享、全屏按钮,点击事件、是否加入字幕,背景透明等。2、可支持移动端触摸手势兼容pc端所有的基本手势...

weixin_30731287的博客 316

[JS插件] PhotoSwipe 图片浏览插件使用方法

PhotoSwipe 是专为移动触摸设备设计的相册/画廊.兼容所有iPhone、iPad、黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品。 官方网站:http://photoswipe.com/ 源码下载:https://github.com/dimsemenov/photoswipe 国内CDN:http://www.bootcdn

我的米饭 1万+

photoswipe.js——移动端图片文字放大缩小

指势触控 简介        PhotoSwipe 是专为移动触摸设备设计的相册/画廊,支持触控网页上所有内容放大缩小,兼容所有iPhone、iPad、黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品。 使用方法 1、引入文件    script type="text/javascript"

cc蒲公英的博客 7145

移动端使用PhotoSwipe 图片放大浏览

先来几张效果图: 点击其中一张照片可放大,可支持图片文字描述: 同时支持分享功能: 支持手势放大缩小   使用js框架是PhotoSwipePhotoSwipe是一个图片放大插件,兼容pc和移动端,经历过多个版本的迭代且一直在不断更新,踩过的坑不知凡几,在移动端有着巨大的优势。 1、可控制多种风格如: 标题、分享、全屏按钮,点击事件、是否加入字幕,背景透明等。

小猴子的博客 6420

PhotoSwipe介绍(1)

介绍 纯js画廊 (gallery),没有依赖性(dependencies) 画廊风格 所有控件(All controls) 标题(caption)、分享(facebook,tweet)、点击切换控制

胡西风的博客 2508

手机图片预览插件photoswipe.js使用总结

主要为大家详细总结了手机图片预览插件photoswipe.js使用方法,感兴趣的小伙伴们可以参考一下

移动端点击图片放大特效PhotoSwipe.js插件实现

PhotoSwipe插件能实现手机端点击图片全屏放大 再双击图片放大等功能 PhotoSwipe插件官方网站 http://www.photoswipe.com/ photoswipe移动端图片放大查看,滑动切换下一张,图片保存到本地。 <style> .pnav{margin-top:30px;text-align:center;line-height:24px; font-size:16px} .pnav a{padding:4px} .pnav a.cur{background:#007bc4;color:#fff;} .demo{width:80%; margin:10px aut

PhotoSwipe.js|支持移动手机的纯js图片画廊插件

PhotoSwipe.js是一款适合于移动手机和桌面设备使用的模块化JavaScript图片画廊插件。该图片画廊在Lightbox状态下支持手指滑动,键盘导航,全屏模式等,并且它兼容IE8以上的所有现代浏览器,是一款非常好的图片画廊插件。

手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现

PhotoSwipe 是专为移动触摸设备设计的相册/画廊.兼容所有iPhone、iPad、黑莓6+,以及桌面浏览器.底层实现基于HTML/CSS/JavaScript,是一款免费开源的相册产品。 为谁而用 让移动站点的相册体验和原生App一样的设计师和开发者。 绝佳特性 PhotoSwipe提供给用户一个熟悉又直观的相册交互界面。 官方网站 http://www.photoswipe.com/ 源码示例 http://github.com/downloads/codecomputerlove/PhotoSwipe/code.photoswipe-3.0.5.zip Github https:/

photoswiper

photoswiper 先来几张效果图: 点击其中一张照片可放大,可支持图片文字描述: 同时支持分享功能: 支持手势放大缩小 使用js框架是PhotoSwipePhotoSwipe是一个图片放大插件,兼容pc和移动端,经历过多个版本的迭代且一直在不断更新,踩过的坑不知凡几,在移动端有着巨大的优势。 1、可控制多种风格如: 标题、分享、全屏按钮,点击事件、是否加入字幕,背景透明等。 2、...

weixin_44185355的博客 627

Vue-preview 图片预览:新手安装与上手完整指南

Vue-preview 是一个基于 Vue.js图片预览插件,封装了 PhotoSwipe 图片查看器,让缩略图列表快速拥有滑动换图、手势缩放等效果,适合需要做移动端图片画廊展示的人。这篇 Vue-preview 安装指南带你几分钟内跑起来。 ## 它到底能干什么 插件把 Vue.js 组件和 PhotoSwipe(一个支持触摸手势的图片查看器 JS 库)封装到一起:你在页面上放一排缩略图

gitblog_01087的博客 138

Vue Picture Swipe 深度解析:构建现代化图片画廊的最佳实践

在移动优先的现代Web开发中,**Vue Picture Swipe** 作为一个基于 Vue.js图片画廊组件,为开发者提供了完整的移动端图片浏览解决方案。这个组件不仅仅是一个简单的图片查看器,它集成了缩略图展示、懒加载、触摸滑动和旋转功能,为移动端用户体验提供了专业级的实现方案。 ## 🔧 核心架构设计解析 ### 基于 PhotoSwipe 的底层实现 Vue Picture S

gitblog_00247的博客 83
上一篇: vue-carbon移动端框架
下一篇: Hammer js——移动设备触摸手势
有水有房子
博客等级 码龄8年 51粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值