非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 相关文章推荐
用Javascript读取中文COOKIE的解决办法
Feb 15 Javascript
jQuery 剧场版 你必须知道的javascript
May 27 Javascript
JS正则中的RegExp对象对象
Nov 07 Javascript
JQuery实现图片轮播效果
Sep 15 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
Dec 04 Javascript
jQuery插件扩展extend的简单实现原理
Jun 24 Javascript
基于vue2的table分页组件实现方法
Mar 20 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
Sep 15 Javascript
Node.js Express安装与使用教程
May 11 Javascript
微信小程序实现多选功能
Nov 04 Javascript
解决vue打包后刷新页面报错:Unexpected token
Aug 27 Javascript
js实现打字小游戏
Dec 17 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
咖啡知识大全
2021/03/03 新手入门
PHP与SQL注入攻击[一]
2007/04/17 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
2014/03/17 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
需要做特殊处理的DOM元素属性的访问
2010/11/05 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
JavaScript调用ajax获取文本文件内容实现代码
2014/03/28 Javascript
JavaScript中获取高度和宽度函数总结
2014/10/08 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
Bootstrap轮播插件简单使用方法介绍
2016/06/21 Javascript
JS继承之借用构造函数继承和组合继承
2016/09/07 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
vue router 用户登陆功能的实例代码
2019/04/24 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
python中实现k-means聚类算法详解
2017/11/11 Python
python http接口自动化脚本详解
2018/01/02 Python
Python with用法:自动关闭文件进程
2019/07/10 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
python如何遍历指定路径下所有文件(按按照时间区间检索)
2020/09/14 Python
html5拖拽应用记录及注意点
2020/05/27 HTML / CSS
美国Lolё官网:购买大胆而美丽的女性运动服装
2017/05/22 全球购物
自我评价中英文语句
2013/11/30 职场文书
企业精神口号
2014/06/11 职场文书
教师节主题班会方案
2015/08/17 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
Mysql数据库命令大全
2021/05/26 MySQL
vue数据字典取键值项目的字典问题
2022/04/12 Vue.js