jQuery插件expander实现图片翻转特效


Posted in Javascript onMay 21, 2015

分享一款基于jQuery图片弹出翻转特效代码。这是一款基于jQuery+HTML5实现的,里面包含六款不同效果的鼠标点击图片弹出特效下载。效果图如下:

jQuery插件expander实现图片翻转特效

引入CSS和JS

<link href="css/expander.css" rel="stylesheet">
<link href="css/theme.css" rel="stylesheet">
<script src="js/jquery-latest.min.js" type="text/javascript"></script>
<script src="js/expander.min.js"></script>

expander.min.js代码

!function(){function a(){var a=this;this.init=function(){$(document).ready(function(){var b=$("<div class='expander-siv'></div>");a.siv=b,$("div.expander-siv").length||$("body").append(b),$("img[data-expander]").each(function(){var c=$(this);c.attr("src",c.attr("src")+"?"+(new Date).getTime()),c.load(function(){var b=$(this).attr("data-expander"),c=$("<div data-expanderContainer></div>");if(c.addClass("expander-container"),b=b.replace(/(['"])?([a-zA-Z0-9_]+)(['"])?:/g,'"$2": '),b=b?JSON.parse(b):{},b.animation&&c.addClass(b.animation),b.theme||(b.theme="dark",c.addClass("theme"),c.addClass("dark"),$("div.expander-siv").addClass("dark"),$("div.expander-siv").addClass("theme")),b.speed||(b.speed="normal"),b.url){var d=$(this).clone();d.attr("src",b.url+"?"+(new Date).getTime()),c.append(d)}else c.append($(this).clone());c.data("options",b),c.data("original",{parent:$(this),position:$(this).offset()}),c.css({position:"absolute",width:$(this).outerWidth(),height:$(this).outerHeight(),top:$(this).offset().top,left:$(this).offset().left}),$(this).data("container",c),c.addClass("anim-"+b.speed),$("body").append(c),$(this).on("click",function(){a.pop($(this).data("container"))}),c.on("click",function(){a.unpop($(this))})}),$(this).bind("expand",function(){a.pop($(this).data("container"))}),$(this).bind("retract",function(){a.unpop($(this).data("container"))})}),setInterval(function(){a.reLayout()},2e3)}),$(window).resize(function(){a.reLayout()})},this.reLayout=function(){$("div[data-expanderContainer]").each(function(){if($(this).hasClass("open"))$(this).css({top:$(window).scrollTop()+"px",left:"0px",width:"100%",height:"100%"});else{var b=$(this).data("original");$(this).css({width:b.parent.outerWidth(),height:b.parent.outerHeight(),top:b.parent.offset().top,left:b.parent.offset().left})}})},this.pop=function(b){a.siv.removeClass(),a.siv.addClass("expander-siv").addClass("theme").addClass(b.data("options").theme),a.siv.addClass("show"),b.addClass("open"),b.css({position:"absolute",top:$(window).scrollTop()+"px",left:"0px",width:"100%",height:"100%"})},this.unpop=function(b){a.siv.removeClass("show");var c=b.data("original").parent;b.css({position:"absolute",top:c.offset().top+"px",left:c.offset().left+"px",width:c.outerWidth()+"px",height:c.outerHeight()+"px"}),b.removeClass("open")},this.init()}var a=new a}();

JS代码:

<script>
    var index = 0;
    var timeout = setInterval(function () {
      if (index > 10) {
        window.clearInterval(timeout)
      }
      $("article").eq(index).addClass("show");
      index++
    }, 300);

    function showFoo() {
      $("#fooId").trigger("expand");
    }

    $("#expandSettings").on("click", function () {
      if ($("ul.settings").hasClass("open")) {
        $("ul.settings").removeClass("open");
      } else {
        $("ul.settings").addClass("open");

      }
    });
</script>

HTML

<section class="main">
<article>
<div class="imgContainer">
<h5>效果一</h5>
<img src="images/chinaz.jpg" data-expander='{animation:"default"}'>
</div>
<div class="imgContainer">
<h5>效果二</h5>
<img src="images/chinaz.jpg" data-expander='{animation:"diamond"}'>
</div>
<div class="imgContainer">
<h5>效果三</h5>
<img src="images/chinaz.jpg" data-expander='{animation:"turn3d"}'>
</div>
<div class="imgContainer">
<h5>效果四</h5>
<img src="images/chinaz.jpg" data-expander='{animation:"flip3d"}'>
</div>
<div class="imgContainer">
<h5>效果五</h5>
<img src="images/chinaz.jpg" data-expander='{animation:"rotate"}'>
</div>
<div class="imgContainer">
<h5>效果六</h5>
<img src="images/chinaz.jpg" data-expander='{animation:"fade"}'>
</div>
</article>
</section>

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
仿163填写邮件地址自动显示下拉(无优化)
Nov 05 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
jQuery之按钮组件的深入解析
Jun 19 Javascript
Node.js中使用Buffer编码、解码二进制数据详解
Aug 16 Javascript
JavaScript获取数组最小值和最大值的方法
Jun 09 Javascript
JS实现选择TextArea内文本的方法
Aug 03 Javascript
jQuery给表格添加分页效果
Mar 02 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
Mar 20 Javascript
详解如何在Vue项目中发送jsonp请求
Oct 25 Javascript
微信小程序实现modal弹出框遮罩层组件(可带文本框)
Dec 20 Javascript
vue前端工程的搭建
Mar 31 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
简单分析javascript面向对象与原型
May 21 #Javascript
jQuery获取上传文件的名称的正则表达式
May 21 #Javascript
js兼容火狐获取图片宽和高的方法
May 21 #Javascript
js兼容火狐显示上传图片预览效果的方法
May 21 #Javascript
javascript去除空格方法小结
May 21 #Javascript
删除javascript所创建子节点的方法
May 21 #Javascript
png在IE6 下无法透明的解决方法汇总
May 21 #Javascript
You might like
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
js鼠标左右键 键盘值小结
2010/06/11 Javascript
jQuery实现用方向键控制层的上下左右移动
2013/01/13 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
JS拉起或下载app的实现代码
2017/02/22 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
小程序组件之仿微信通讯录的实现代码
2018/09/12 Javascript
React 使用recharts实现散点地图的示例代码
2018/12/07 Javascript
微信小程序3D轮播实现代码
2019/09/19 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
vue中axios封装使用的完整教程
2021/03/03 Vue.js
在Python3中使用asyncio库进行快速数据抓取的教程
2015/04/02 Python
在Python中处理字符串之ljust()方法的使用简介
2015/05/19 Python
Python pandas常用函数详解
2018/02/07 Python
python保存数据到本地文件的方法
2018/06/23 Python
python逆序打印各位数字的方法
2018/06/25 Python
使用sklearn进行对数据标准化、归一化以及将数据还原的方法
2018/07/11 Python
简单了解python中对象的取反运算符
2019/07/01 Python
python 如何去除字符串头尾的多余符号
2019/11/19 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
CSS3弹性盒模型开发笔记(二)
2016/04/26 HTML / CSS
四种会话跟踪技术
2015/05/20 面试题
党员大会主持词
2014/04/02 职场文书
安全协议书
2014/04/23 职场文书
党的群众教育实践活动实施方案
2014/06/12 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
晚会开幕词
2015/01/28 职场文书
谢师宴邀请函
2015/02/02 职场文书
综合素质评价思想道德自我评价
2015/03/09 职场文书
欧元符号 €
2022/02/17 杂记