奇葩的轮播图

说轮播图很简单的,一定是没有遇到厉害的产品。


先说需求:
首先,一个mask会有三张图片,点击左右按钮会左右滑动一张图片的宽度。
点击展示的三张图片的任意一张,弹出遮罩,显示该图片的放大样式,并支持左右箭头的点击,类似一个新的轮播图。

轮播的插件

找了很久都没有找到一个合适的插件,如果自己书写,无疑会花费更多的时间,故采取一个折中的方案,用两个轮播插件实现需求。

一个插件实现左右滚动的效过,一个插件弹出的左右效果。

插件如下:

  1. jquery.magnific-popup.js
  2. swiper.min.js

配置说明

html结构

  1. <div class="swiper-container">
  2. <div class="swiper-wrapper">
  3. <div class="swiper-slide">
  4. <a href="./1.jpg" data-source="./1.jpg" style="width:100%;">
  5. <img src="./1.jpg" width="100%">
  6. </a>
  7. </div>
  8. <div class="swiper-slide">
  9. <a href="./4.jpg" data-source="./4.jpg" style="width:100%;">
  10. <img src="./4.jpg" width="100%">
  11. </a>
  12. </div>
  13. <div class="swiper-slide">
  14. <a href="./4.jpg" data-source="./4.jpg" style="width:100%;">
  15. <img src="./4.jpg" width="100%">
  16. </a>
  17. </div>
  18. <div class="swiper-slide">
  19. <a href="./4.jpg" data-source="./4.jpg" style="width:100%;">
  20. <img src="./4.jpg" width="100%">
  21. </a>
  22. </div>
  23. </div>
  24. <div class="swiper-button-next"></div>
  25. <div class="swiper-button-prev"></div>
  26. </div>

私有css样式

  1. .mfp-with-zoom .mfp-container,
  2. .mfp-with-zoom.mfp-bg {
  3. opacity: 0;
  4. -webkit-backface-visibility: hidden;
  5. -webkit-transition: all 0.3s ease-out;
  6. -moz-transition: all 0.3s ease-out;
  7. -o-transition: all 0.3s ease-out;
  8. transition: all 0.3s ease-out;
  9. }
  10. .mfp-with-zoom.mfp-ready .mfp-container {
  11. opacity: 1;
  12. }
  13. .mfp-with-zoom.mfp-ready.mfp-bg {
  14. opacity: 0.8;
  15. }
  16. .mfp-with-zoom.mfp-removing .mfp-container,
  17. .mfp-with-zoom.mfp-removing.mfp-bg {
  18. opacity: 0;
  19. }
  20. .swiper-container a {
  21. display: inline-block;
  22. }
  23. body {
  24. margin: 0;
  25. padding: 0;
  26. }

相关js的配置

  1. var swiper = new Swiper('.swiper-container', {
  2. nextButton: '.swiper-button-next',
  3. prevButton: '.swiper-button-prev',
  4. slidesPerView: 3,
  5. centeredSlides: false,
  6. spaceBetween: 0,
  7. });
  8. $('.swiper-wrapper').magnificPopup({
  9. delegate: 'a',
  10. type: 'image',
  11. closeOnContentClick: false,
  12. closeBtnInside: false,
  13. mainClass: 'mfp-with-zoom mfp-img-mobile',
  14. gallery: {
  15. enabled: true
  16. },
  17. zoom: {
  18. enabled: true,
  19. duration: 300,
  20. opener: function (element) {
  21. return element.find('img');
  22. }
  23. }
  24. });

注意:当设置swiper配置项目为循环播放的时候,会导致插件magnificPopup的图片数量增加。

很多的实现循环播放的插件都会至少增加图片栈的最前与最后的一张图片,以在视觉上显示无线循环的假象,当前这种技术是基于定时器动画才有的限制。

当采用css3显示的轮播图,通过淡入淡出,可以不用增加图片的数量,来完成无限轮播。

more

magnific-Popup github地址

swiper 中文网地址

swiper.js + jquery.magnific-popup.js 实现奇葩的轮播需要的更多相关文章

  1. js渐隐渐现透明度变化淡入淡出轮播图

    js渐隐渐现透明度变化淡入淡出轮播图.焦点图 一些广告banner展示常见. (附件) <!DOCTYPE html> <html> <head> <meta ...

  2. jquery的fadeTo方法的淡入淡出轮播图插件

    由于对基于jquery的简单插件开发有了一定的了解,慢慢的也对基于jquery的插件开发有了兴趣,在上班结束之后就研究各种插件的思路逻辑.最近开发了一款基于jquery的fadeTo方法的轮播图插件, ...

  3. 基于jQuery带进度条全屏图片轮播代码

    基于jQuery带进度条全屏图片轮播代码.这是一款基于jQuery实现的oppo手机官网首页带进度条全屏图片轮播特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div ...

  4. JS框架_(Popup.js)3D对话框窗口插件

    百度云盘 传送门 密码:afdo 3D对话框窗口插件效果: <!doctype html> <html lang="zh"> <head> &l ...

  5. 原生js+css3实现图片自动切换,图片轮播

    运用CSS3transition及opacity属性 制作图片轮播动画 自己这两天根据用js来控制触发CSS3中transition属性,从而写出来的以CSS3动画为基础,js控制过程的图片轮播 运用 ...

  6. js原生选项卡(自动播放无缝滚动轮播图)二

    今天分享一下自动播放轮播图,自动播放轮播图是在昨天分享的轮播图的基础上添加了定时器,用定时器控制图片的自动切换,函数中首先封装一个方向的自动播放工能的小函数,这个函数中添加定时器,定时器中可以放向右走 ...

  7. jQuery系列(十三):实现轮播

    1.轮播一: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  8. jQuery无缝循环开源多元素动画轮播jquery.slides插件

    详细内容请点击 初始化插件: 一款基于jQuery无缝轮播图插件,支持图内元素动画,可以自定义动画类型$(".slideInner").slide({slideContainer: ...

  9. No mapping found for HTTP request with URI [/SLSaleSystem/js/jquery.dataTables.min.js] in DispatcherServlet with name 'spring' 静态资源文件访问不到,无解!!!!!!!

    报错信息:   网上三种修改 web.xml 文件方法尝试未果 尝试未果:<mvc:default-servlet-handler/> 尝试未果:方法2:直接告诉spring,这个你就得这 ...

随机推荐

  1. 如何快速将一个list<a>集合中的部分字段值组合成新的的list<b>部分*

    有的时候,我们只需要从老数据中拿一部分数据作为新的绑定数据,比如说绑定下拉框的时候需要构造我们需要的数据格式可以采用以下的方法 public class SelectDataViewModel { p ...

  2. SQL Server 怎么在分页获取数据的同时获取到总记录数

    SQL Server 获取数据的总记录数,有两种方式: 1.先分页获取数据,然后再查询一遍数据库获取到总数量 2.使用count(1) over()获取总记录数量 SELECT * FROM ( SE ...

  3. python特色_字典,元组,列表

    一.前言: 1.许多编程语言的基本数据类型都大同小异,而字典,元组,列表是python编程语言的一大特色,能够非常简单的完成很多功能,学习好字典,元组,列表能够为以后大数据,批处理......提供很多 ...

  4. 微服务创建——Ubuntu搭建GitLab

    Ubuntu呢,用的国产麒麟,可能对于用习惯了Windows操作系统的人来说使用UKylin会很难受吧,开发的人倒没什么,不过就是命令行的问题 那么,怎么搭建一个完整的GitLab呢,一步步来操作吧, ...

  5. canvas-8searchLight2.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. canvas-7globleCompositeOperation.html

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 判断浏览器的名称,区分360的ie和谷歌内核

    function getBrowserInfo() { var ua = navigator.userAgent.toLocaleLowerCase(); var browserType = null ...

  8. css 表单标签两端对齐

    来自:http://demo.doyoe.com/css3/justify/justify-form.htm  侵删 <!DOCTYPE html> <html lang=" ...

  9. Genymotion安卓模拟器和VirtualBox虚拟机安装、配置、测试

    Genymotion安卓模拟器和VirtualBox虚拟机安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.VirtualBox虚拟机安装 4.Genymotion安卓 ...

  10. 添加用户到sudoers

    ** is not in the sudoersfile.  This incident will bereported.” (用户不在sudoers文件中……) 处理这个问题很简单,但应该先理解其原 ...