程序员html 5制作相册,前端程序员给女朋友做的相册——原生JS
今天要分享的是一款特别的 html5/css3 焦点图效果,不依赖jquery,全程JS 手写,代码量不大,百行左右,它的特别之处在于 可以多维度的切换
谁说程序员没有情调? 拿这个去给女票定制个专属相册吧
源码地址:下载
js核心代码:
window.addEventListener('load',function(){
figure = document.getElementById('multiSlide');
topButton = document.getElementById('top');
bottomButton = document.getElementById('bottom');
leftButton = document.getElementById('left');
rightButton = document.getElementById('right');
new Box(-2,2,'images/2689.jpg');
new Box(-1,2,'images/2690.jpg');
new Box(0,2,'images/2691.jpg');
new Box(1,2,'images/2692.jpg');
new Box(2,2,'images/2693.jpg');
new Box(3,2,'images/2694.jpg');
new Box(4,2,'images/2695.jpg');
new Box(5,2,'images/2696.jpg');
new Box(2,-2,'images/2697.jpg');
new Box(2,-1,'images/2698.jpg');
new Box(2,0,'images/2699.jpg');
new Box(2,1,'images/2700.jpg');
new Box(2,2,'images/2701.jpg');
new Box(2,3,'images/2702.jpg');
new Box(2,4,'images/2703.jpg');
new Box(2,5,'images/2704.jpg');
topButton.addEventListener('click', function(){
if(slidePosY>-3)
slide('Y',-1);
});
bottomButton.addEventListener('click', function(){
if(slidePosY<4)
slide('Y',1);
});
leftButton.addEventListener('click', function(){
if(slidePosX>-3)
slide('X',-1);
});
rightButton.addEventListener('click', function(){
if(slidePosX<4)
slide('X',1);
});
});
var unit = 160;
var registeredBoxes = [];
var slidePosX = 0;
var slidePosY = 0;
var Box = function(posX,posY,img){
this.pos = {};
this.pos.X = posX;
this.pos.Y = posY;
this.img = img;
this.init();
}
Box.prototype = {
init : function(){
this.DOMElement = document.createElement('div');
this.DOMElement.className = 'box';
this.DOMElement.style.left = (this.pos.X*unit)-unit+'px';
this.DOMElement.style.top = (this.pos.Y*unit)-unit+'px';
this.DOMElement.setAttribute('data-pos',this.pos.X.toString()+this.pos.Y.toString());
var img = document.createElement('img');
img.src = this.img;
this.DOMElement.appendChild(img);
figure.appendChild(this.DOMElement);
registeredBoxes.push(this);
},
setPosition : function(axis,val){
this.pos[axis] = val;
if(axis == 'X'){
this.DOMElement.style.left = (this.pos[axis]*unit)-unit+'px';
}else if(axis == 'Y'){
this.DOMElement.style.top = (this.pos[axis]*unit)-unit+'px';
}
this.DOMElement.setAttribute('data-pos',this.pos.X.toString()+this.pos.Y.toString());
}
}
function slide(axis,dir){
var len = registeredBoxes.length;
if(axis == 'Y'){
for(var i=0; i
if(registeredBoxes[i].pos['X']=='2'){
registeredBoxes[i].setPosition(axis,registeredBoxes[i].pos['Y']+(1*dir));
}
}
slidePosY = slidePosY+dir;
}else if(axis == 'X'){
for(var i=0; i
if(registeredBoxes[i].pos['Y']=='2'){
registeredBoxes[i].setPosition(axis,registeredBoxes[i].pos['X']+(1*dir));
}
}
slidePosX = slidePosX+dir;
}
}
程序员html 5制作相册,前端程序员给女朋友做的相册——原生JS相关推荐
- Java程序员情人节_盘点程序员情人节的表白,前端程序员最浪漫,后端不服来战...
今天是 2 月 14 日情人节,我看公众号后台有好多人在回复关键字:情人节表白代码.我想,我作为大家的校长,必须给大家送一波福利代码啊!我是真没想到,竟然很多程序员都想用代码表白,还整的挺浪漫的,看来 ...
- 盘点程序员情人节的表白,前端程序员最浪漫,后端不服来战
loonggg 读完需要 3分钟 速读仅需1分钟 今天是七夕,中国的情人节,当然了就是牛郎和织女团聚的日子.在 IT 群体中,很多人都说程序员不浪漫,程序员不懂得浪漫,程序员木讷,只会敲代码,没有女朋 ...
- html5程序员面试官如何提问,前端程序员第二轮面试的10个问题
近日,w3cschool app开发者头条上分享了美团前端程序员第二轮面经,引来了不少程序员粉丝们的围观. 在分享面经之前,不妨先了解一下前端面试应该做好哪些准备呢? 0.前端面试加分 前端面试git ...
- 小程序怎么把同名文件的前端数据(wxml)传送到后端(js)
把同名文件的前端数据(wxml)传送到后端(js) {{list}}是后端(js)拿到前端的数据,这里经过for循环遍历每个item(子项),然后把他们的name和price拿出来用 data-nam ...
- 前端学习(2879)歌谣学习篇原生js和canvas实现弹幕功能
我是歌谣 放弃很难 坚持一定很酷 2021继续加油 目录结构 文件地址 源码地址后面可见 源码文件 index.css body { margin: 0; } .container { width: ...
- web前端:canvas画布,飞鸟动画,原生js
1.效果图 2.less * {margin: 0;padding: 0;#wrap {width: 600px;height: 800px;background: tomato;border: 2p ...
- 前端程序员未来如何发展?
网上总是不断传出没有程序员能干到35岁的言论. 也有针对此反驳说,没有程序员能干到35岁就像当下没有90后活到35岁一样,完全是因为计算机是个新兴的行业,年龄达到35的程序员本就不多,很多还不是科班出 ...
- 前端程序员和后端程序员有什么不同?我来告诉你薪资待遇差多少
作为一个程序员,我发现后端程序员和前端程序员有很大的不同.后端程序员主要关注的是处理看不见的部分,如服务器.数据库.API等等.而前端程序员主要关注的是展现的部分,如网页的设计.交互和用户体验等等. ...
- 前端程序员一般在哪些网站接单?
之前也写过一期前端程序员兼职接单的方法,但有粉丝私信说文章中前端接单的网站是比较少的,对想要找更多的网站对比下,今天就给大家做一个补充,希望能够帮到有需要的同学哦~ 如果嫌弃前面的文字太长,可以直接翻 ...
最新文章
- 《系统集成项目管理工程师》必背100个知识点-58沟通方式
- android gradle权威指南pdf_干货 | 携程 Android 10适配踩坑指南
- android gradle + junit + jacoco 集成jenkins,sonar系统
- java.util.list 报错_Java 报错 .updateValue' has an unsupported return type: interface java.util.List...
- dbhelp mysql c_C++写的一个MYSQL控制台(3)
- 2021年中国电缆吹风机市场趋势报告、技术动态创新及2027年市场预测
- Coin3d用vs2010编译
- uniapp H5文件预览,PDF预览
- 蓝牙抓包工具使用教程
- DM数据库实例迁移教程
- wps怎么把两张图片组合_如何对word/wps中的多个图片进行组合。 专家详解
- 云计算与大数据概论(1) 云计算,大数据是什么
- 2020-08-05
- sql server 找到刚刚插入的indentify的数字
- Arcmap特殊注记
- 马德里的Uber司机
- 分享一个公主连结辅助工具
- gpu浮点计算能力floaps_为何CPU浮点计算能力差,什么是浮点计算,GPU为何擅长浮点计算?...
- 十年架构师留下最完整的Java学习路线,学完年薪40W
- win10c语言关机,win10如何设置定时关机?
热门文章
- ubuntu配置无线网卡
- 计算机毕业设计django基于python在线古诗词学习系统(源码+系统+mysql数据库+Lw文档)
- 三菱PLC编程软件GX WORKS3中如何自定义库文件FB并进行导出和导入库操作?
- python读取excel学习day1
- 我是如何利用业余时间写书的?---时间管理
- 【考研数据】三.2022年BJTU计算机学院考研录取数据分析
- deepin linux 听歌
- 中国十大坑人“民族”品牌排行榜,不要再被他们骗了!
- 监控摄像头个人购买零门槛真的没问题吗?
- http://www.w3schools.com/