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 相关文章推荐
jQuery使用手册之 事件处理
Mar 24 Javascript
javascript 尚未实现错误解决办法
Nov 27 Javascript
CCPry JS类库 代码
Oct 30 Javascript
浅谈JavaScript实现面向对象中的类
Dec 09 Javascript
jQuery插件kinMaxShow扩展效果用法实例
May 04 Javascript
关于vue.js发布后路径引用的问题解决
Aug 15 Javascript
JS设计模式之单例模式(一)
Sep 29 Javascript
angular4实现tab栏切换的方法示例
Oct 21 Javascript
JavaScript时间戳与时间日期间相互转换
Dec 11 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
基于vue-resource jsonp跨域问题的解决方法
Feb 03 Javascript
vue项目中引入vue-datepicker插件的详解
May 14 Javascript
简单分析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
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
php+xml编程之SimpleXML的应用实例
2015/01/24 PHP
在PHP中使用FastCGI解析漏洞及修复方案
2015/11/10 PHP
用js模拟JQuery的show与hide动画函数代码
2010/09/20 Javascript
模拟jQuery ajax服务器端与客户端通信的代码
2011/03/28 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
javascript学习笔记(一) 在html中使用javascript
2012/06/18 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
bootstrap Table插件使用demo
2017/08/07 Javascript
Vue中建立全局引用或者全局命令的方法
2017/08/21 Javascript
JavaScript学习总结(一) ECMAScript、BOM、DOM(核心、浏览器对象模型与文档对象模型)
2018/01/07 Javascript
JS中利用FileReader实现上传图片前本地预览功能
2018/03/02 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
jQuery实现日历效果
2020/09/11 jQuery
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
python实现随机梯度下降(SGD)
2020/03/24 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
Python unittest单元测试框架总结
2018/09/08 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
Python笔记之代理模式
2019/11/20 Python
python实现tail -f 功能
2020/01/17 Python
Python+appium框架原生代码实现App自动化测试详解
2020/03/06 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
python实现视频压缩功能
2020/12/18 Python
农业开发项目建议书
2014/05/16 职场文书
党的群众路线调研报告
2014/11/03 职场文书
公务员个人年终总结
2015/02/12 职场文书
python将图片转为矢量图的方法步骤
2021/03/30 Python
python 使用pandas读取csv文件的方法
2022/12/24 Python