非jQuery实现照片散落桌子上,单击放大的LightBox效果


Posted in Javascript onNovember 28, 2014

效果图如下

非jQuery实现照片散落桌子上,单击放大的LightBox效果

非jQuery实现照片散落桌子上,单击放大的LightBox效果

Demo地址http://xueduany.github.io/KitJs/KitJs/demo/Lightbox-Gallery/demo.html

实现原理很简单,基本的html如下

<div id="gallery">

            <div class="item">

                <a class="kitLightBox" href="img/original/blue-green-nature.jpg" target="_blank"><img src="img/thumbs/blue-green-nature.jpg"></a>

                <div class="desc">

                    blue-green-nature

                </div>

            </div>

            <div class="item">

                <a class="kitLightBox" href="img/original/2-breast-stroke.jpg" target="_blank"><img src="img/thumbs/2-breast-stroke.jpg"></a>

                <div class="desc">

                    2-breast-stroke

                </div>

            </div>

            <div class="item">

                <a class="kitLightBox" href="img/original/farm.jpg" target="_blank"><img src="img/thumbs/farm.jpg"></a>

                <div class="desc">

                    farm

                </div>

            </div>

            <div class="item">

                <a class="kitLightBox" href="img/original/bahnhoff.jpg" target="_blank"><img src="img/thumbs/bahnhoff.jpg"></a>

                <div class="desc">

                    bahnhoff

                </div>

            </div>
            ……

先定义一块桌布,也就是div id=”gallery”

然后按照顺序,排列一竖列相册,div class=”item”,里面用一个a链接把图片包起来

接下来,我们要实现相片的分散效果,

$k(function() {

$k('.item', $k('#gallery')).each(function() {

$k(this).css({

top : $kit.math.rand($k('#gallery').innerHeight()) + 'px',

left : $kit.math.rand($k('#gallery').innerWidth()) + 'px',

'-webkit-transform' : 'rotate(' + $kit.math.rand(-40, 40) + 'deg)'

});

})

这里的是$k是kit的写法,类似jQuery的$,API完全一样,这段代码的意思是找到所有item的div,设置为绝对定位,用桌布高宽,生成随机数,排列,对于css3,使用css3特有的旋转效果'rotate属性,旋转一定角度

这个时候,相片就开始分散开了,达到了图1的效果,接下来我们要做一下LightBox的效果,

$k(function() {

$k('.item', $k('#gallery')).each(function() {

$k(this).css({

top : $kit.math.rand($k('#gallery').innerHeight()) + 'px',

left : $kit.math.rand($k('#gallery').innerWidth()) + 'px',

'-webkit-transform' : 'rotate(' + $kit.math.rand(-40, 40) + 'deg)'

});

}).pushStack('a.kitLightBox').each(function() {

new $kit.ui.LightBox({

el : this

}).init();

});

});

完整代码如上,对于每个图片的a链接,使用kitjs的lightbox UI widget实例化,得到的效果就能点击,动画效果的打开图片大图了。^_^祝各位使用愉快!

LightBox源代码https://github.com/xueduany/KitJs/blob/master/KitJs/src/js/widget/LightBox/lightbox.js

相片分散效果源代码https://github.com/xueduany/KitJs/blob/master/KitJs/demo/Lightbox-Gallery/demo.html

本文是基于KITJS框架来实现的,小伙伴们如果不是很了解,那么后续文章,我们来详细介绍下这款非常棒的js框架。

Javascript 相关文章推荐
使用jquery实现简单的ajax
Jul 08 Javascript
php 中序列化和json使用介绍
Jul 08 Javascript
使用 js+正则表达式为关键词添加链接
Nov 11 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
Jul 31 Javascript
js淡入淡出焦点图幻灯片效果代码分享
Sep 08 Javascript
javascript基础语法——全面理解变量和标识符
Jun 02 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
详解用webpack2.0构建vue2.0超详细精简版
Apr 05 Javascript
vue+jquery+lodash实现滑动时顶部悬浮固定效果
Apr 28 jQuery
JS实现常见的查找、排序、去重算法示例
May 21 Javascript
浅谈vue.use()方法从源码到使用
May 12 Javascript
微信小程序左右滚动公告栏效果代码实例
Sep 16 Javascript
开源的javascript项目Kissy介绍
Nov 28 #Javascript
对比分析json及XML
Nov 28 #Javascript
jquery 操作css样式、位置、尺寸方法汇总
Nov 28 #Javascript
javascript基本类型详解
Nov 28 #Javascript
javascript中数组array及string的方法总结
Nov 28 #Javascript
20条学习javascript的编程规范的建议
Nov 28 #Javascript
20个实用的JavaScript技巧分享
Nov 28 #Javascript
You might like
用PHP实现的随机广告显示代码
2007/06/14 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
php使用mb_check_encoding检查字符串在指定的编码里是否有效
2013/11/07 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
jquery 指南/入门基础
2007/11/30 Javascript
JavaScript中的View-Model使用介绍
2011/08/11 Javascript
js opener的使用详解
2014/01/11 Javascript
jquery滚动到顶部底部代码
2015/04/20 Javascript
JavaScript统计网站访问次数的实现代码
2015/11/18 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
JS Ajax请求如何防止重复提交
2016/06/13 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
jQuery实现打开网页自动弹出遮罩层或点击弹出遮罩层功能示例
2017/10/19 jQuery
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
JS中的BOM应用
2018/02/02 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
详解vue服务端渲染浏览器端缓存(keep-alive)
2018/10/12 Javascript
angularjs请求数据的方法示例
2019/08/06 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
python条件和循环的使用方法
2013/11/01 Python
Python中使用asyncio 封装文件读写
2016/09/11 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
python调用java的jar包方法
2018/12/15 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
2020/02/26 Python
Python使用pyexecjs代码案例解析
2020/07/13 Python
Python 在函数上添加包装器
2020/07/28 Python
python使用建议技巧分享(三)
2020/08/18 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
英国床垫在线:Mattress Online
2016/12/07 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
初中体育教学反思
2014/01/14 职场文书
2015年环卫处个人工作总结
2015/07/27 职场文书
总结三种用 Python 作为小程序后端的方式
2022/05/02 Python