非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中apply和call方法的作用及区别说明
Feb 14 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
JS验证邮件地址格式方法小结
Dec 01 Javascript
js实现增加数字显示的环形进度条效果
Feb 05 Javascript
vue实现图书管理demo详解
Oct 17 Javascript
解决微信小程序防止无法回到主页的问题
Sep 28 Javascript
Vue中多个元素、组件的过渡及列表过渡的方法示例
Feb 13 Javascript
详解vue配置后台接口方式
Mar 29 Javascript
layui监听工具栏的实例(操作列表按钮)
Sep 10 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
Feb 23 Javascript
vue中实现点击变成全屏的多种方法
Sep 27 Javascript
vue+elementUI实现表格列的显示与隐藏
Apr 13 Vue.js
开源的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
深入理解require与require_once与include以及include_once的区别
2013/06/05 PHP
如何修改和添加Apache的默认站点目录
2013/07/05 PHP
php下载远程大文件(获取远程文件大小)的实例
2017/06/17 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
B/S模式项目中常用的javascript汇总
2013/12/17 Javascript
利用原生JavaScript获取元素样式只是获取而已
2014/10/08 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
javascript简单比较日期大小的方法
2016/01/05 Javascript
jQuery中的一些常见方法小结(推荐)
2016/06/13 Javascript
Node.js实现兼容IE789的文件上传进度条
2016/09/02 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
AngularJS bootstrap启动详解及实例代码
2016/09/14 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
详解vue项目中使用token的身份验证的简单实践
2019/03/08 Javascript
js中let能否完全替代IIFE
2019/06/15 Javascript
javascript之分片上传,断点续传的实际项目实现详解
2019/09/05 Javascript
jquery插件懒加载的示例
2020/10/24 jQuery
Python2/3中urllib库的一些常见用法
2017/12/19 Python
Python实现求一个集合所有子集的示例
2018/05/04 Python
python 8种必备的gui库
2020/08/27 Python
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
几个MySql的面试题
2013/04/22 面试题
路政管理专业个人自荐信范文
2013/11/30 职场文书
商场活动策划方案
2014/01/24 职场文书
迟到检讨书5000字
2014/01/31 职场文书
策划创业计划书
2014/02/06 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
党支部培养考察意见
2015/06/02 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书