非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 相关文章推荐
js中关于String对象的replace使用详解
May 24 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
Nov 14 Javascript
jQuery统计指定子元素数量的方法
Mar 17 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
快速入门Vue
Dec 19 Javascript
详谈javascript精度问题与调整
Jul 08 Javascript
微信小程序项目实践之主页tab选项实现
Jul 18 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
Sep 03 Javascript
Node.js操作系统OS模块用法分析
Jan 04 Javascript
JavaScript HTML DOM元素 节点操作汇总
Jul 29 Javascript
js new Date()实例测试
Oct 31 Javascript
vue图片上传组件使用详解
Dec 23 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 前一天或后一天的日期
2008/06/28 PHP
php查询mssql出现乱码的解决方法
2014/12/29 PHP
PHP5.4起内置web服务器使用方法
2016/08/09 PHP
php解决DOM乱码的方法示例代码
2016/11/20 PHP
如何在PHP中生成随机数
2020/06/04 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
一个支付页面DEMO附截图
2014/07/22 Javascript
EasyUI实现二级页面的内容勾选的方法
2015/03/01 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
纯js实现画一棵树的示例
2017/09/05 Javascript
node.js将MongoDB数据同步到MySQL的步骤
2017/12/10 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
基于Cesium绘制抛物弧线
2020/11/18 Javascript
python执行get提交的方法
2015/04/29 Python
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
解决Python3下map函数的显示问题
2019/12/04 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
Python无损压缩图片的示例代码
2020/08/06 Python
使用css3实现超炫的loading加载动画效果
2014/05/07 HTML / CSS
DOUGLAS波兰:在线销售香水和化妆品
2020/07/05 全球购物
介绍一下如何优化MySql
2016/12/20 面试题
中秋节寄语2015
2015/03/24 职场文书
驾驶员管理制度范本
2015/08/06 职场文书
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
2022/04/11 Python
PostgreSQL常用字符串分割函数整理汇总
2022/07/07 PostgreSQL