今天要分享的是一款特别的 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相关推荐

  1. Java程序员情人节_盘点程序员情人节的表白,前端程序员最浪漫,后端不服来战...

    今天是 2 月 14 日情人节,我看公众号后台有好多人在回复关键字:情人节表白代码.我想,我作为大家的校长,必须给大家送一波福利代码啊!我是真没想到,竟然很多程序员都想用代码表白,还整的挺浪漫的,看来 ...

  2. 盘点程序员情人节的表白,前端程序员最浪漫,后端不服来战

    loonggg 读完需要 3分钟 速读仅需1分钟 今天是七夕,中国的情人节,当然了就是牛郎和织女团聚的日子.在 IT 群体中,很多人都说程序员不浪漫,程序员不懂得浪漫,程序员木讷,只会敲代码,没有女朋 ...

  3. html5程序员面试官如何提问,前端程序员第二轮面试的10个问题

    近日,w3cschool app开发者头条上分享了美团前端程序员第二轮面经,引来了不少程序员粉丝们的围观. 在分享面经之前,不妨先了解一下前端面试应该做好哪些准备呢? 0.前端面试加分 前端面试git ...

  4. 小程序怎么把同名文件的前端数据(wxml)传送到后端(js)

    把同名文件的前端数据(wxml)传送到后端(js) {{list}}是后端(js)拿到前端的数据,这里经过for循环遍历每个item(子项),然后把他们的name和price拿出来用 data-nam ...

  5. 前端学习(2879)歌谣学习篇原生js和canvas实现弹幕功能

    我是歌谣 放弃很难 坚持一定很酷 2021继续加油 目录结构 文件地址 源码地址后面可见 源码文件 index.css body { margin: 0; } .container { width: ...

  6. web前端:canvas画布,飞鸟动画,原生js

    1.效果图 2.less * {margin: 0;padding: 0;#wrap {width: 600px;height: 800px;background: tomato;border: 2p ...

  7. 前端程序员未来如何发展?

    网上总是不断传出没有程序员能干到35岁的言论. 也有针对此反驳说,没有程序员能干到35岁就像当下没有90后活到35岁一样,完全是因为计算机是个新兴的行业,年龄达到35的程序员本就不多,很多还不是科班出 ...

  8. 前端程序员和后端程序员有什么不同?我来告诉你薪资待遇差多少

    作为一个程序员,我发现后端程序员和前端程序员有很大的不同.后端程序员主要关注的是处理看不见的部分,如服务器.数据库.API等等.而前端程序员主要关注的是展现的部分,如网页的设计.交互和用户体验等等. ...

  9. 前端程序员一般在哪些网站接单?

    之前也写过一期前端程序员兼职接单的方法,但有粉丝私信说文章中前端接单的网站是比较少的,对想要找更多的网站对比下,今天就给大家做一个补充,希望能够帮到有需要的同学哦~ 如果嫌弃前面的文字太长,可以直接翻 ...

最新文章

  1. 《系统集成项目管理工程师》必背100个知识点-58沟通方式
  2. android gradle权威指南pdf_干货 | 携程 Android 10适配踩坑指南
  3. android gradle + junit + jacoco 集成jenkins,sonar系统
  4. java.util.list 报错_Java 报错 .updateValue' has an unsupported return type: interface java.util.List...
  5. dbhelp mysql c_C++写的一个MYSQL控制台(3)
  6. 2021年中国电缆吹风机市场趋势报告、技术动态创新及2027年市场预测
  7. Coin3d用vs2010编译
  8. uniapp H5文件预览,PDF预览
  9. 蓝牙抓包工具使用教程
  10. DM数据库实例迁移教程
  11. wps怎么把两张图片组合_如何对word/wps中的多个图片进行组合。 专家详解
  12. 云计算与大数据概论(1) 云计算,大数据是什么
  13. 2020-08-05
  14. sql server 找到刚刚插入的indentify的数字
  15. Arcmap特殊注记
  16. 马德里的Uber司机
  17. 分享一个公主连结辅助工具
  18. gpu浮点计算能力floaps_为何CPU浮点计算能力差,什么是浮点计算,GPU为何擅长浮点计算?...
  19. 十年架构师留下最完整的Java学习路线,学完年薪40W
  20. win10c语言关机,win10如何设置定时关机?

热门文章

  1. ubuntu配置无线网卡
  2. 计算机毕业设计django基于python在线古诗词学习系统(源码+系统+mysql数据库+Lw文档)
  3. 三菱PLC编程软件GX WORKS3中如何自定义库文件FB并进行导出和导入库操作?
  4. python读取excel学习day1
  5. 我是如何利用业余时间写书的?---时间管理
  6. 【考研数据】三.2022年BJTU计算机学院考研录取数据分析
  7. deepin linux 听歌
  8. 中国十大坑人“民族”品牌排行榜,不要再被他们骗了!
  9. 监控摄像头个人购买零门槛真的没问题吗?
  10. http://www.w3schools.com/