js钢琴按钮波浪式图片排列效果代码分享


Posted in Javascript onAugust 26, 2015

本文实例讲述了js钢琴按钮波浪式图片排列效果。分享给大家供大家参考。具体如下:

这是一款基于javascript实现的钢琴按钮波浪式图片排列效果,鼠标在图片列表上移动,当前图片高亮显示,以此为根基点,周围的图片逐渐变小,所以有种手指划过钢琴键盘的感觉。

运行效果图:                                -------------------查看效果-------------------

js钢琴按钮波浪式图片排列效果代码分享

小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式。

注意:图片的alt属性不能缺少,否则将导致效果失败。
为大家分享的js钢琴按钮波浪式图片排列效果代码如下

head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title>js钢琴按钮波浪式图片排列效果</title>
 <style>
 #bookrack { width: 1200px; margin:100px auto; overflow:hidden;} 
 #bookrack a { text-align: center; text-decoration: none; font-size: 12px; } 
 #bookrack span { display: none; position: absolute; color: #fff; background-color: #000; background: rgba(0, 0, 0, 0.5); padding: 5px; top: 30px; left: 0; } 
 #bookrack span big { color: red; font-size: 14px; } 
 #bookrack img { width: 100%; height: 100%; display: block; border: 0; }
 </style>
</head>
<body>

<!--代码部分begin-->
<div id="bookrack">
 <a href="#" title="三水点靠木"><img src="images/2.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/3.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/4.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/5.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/6.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/7.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/8.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/2.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/3.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/4.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/5.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/6.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/7.jpg" alt="三水点靠木" /></a>
 <a href="#" title="三水点靠木"><img src="images/8.jpg" alt="三水点靠木" /></a>
 
</div>
<script>
var Bookrack = function(a, b, c, e) {
 this.scale = e || 0.1;
 this.x = b || 120;
 this.y = c || 160;
 this.border = 2;
 this.init(a);
 this.exec(Math.ceil(Math.random() * this.imgs.length))
};
Bookrack.prototype = {
 init: function(a) {
 this.width = a.clientWidth - 2 * this.x * this.scale;
 a.style.position = "relative";
 a.style.height = this.y + "px";
 this.imgs = a.getElementsByTagName("a");
 var b = this,
 c = document.createElement("span"),
 e,
 d;
 this.each(function(a, g) {
 a.style.position = "absolute";
 a.style.bottom = "0";
 a.style.border = this.border + "px solid gray";
 a.style.left = this.width * (g / this.imgs.length) + 2 * this.border + "px";
 a.setAttribute("dir", g);
 d = a.getElementsByTagName("img")[0].getAttribute("alt").split("|");
 e = c.cloneNode(!0);
 e.innerHTML = a.getAttribute("title");
 a.appendChild(e);
 a.onmouseover = function() {
 b.exec(this.getAttribute("dir"))
 }
 })
 },
 each: function(a) {
 for (var b = 0,
 c; c = this.imgs[b++];) a.call(this, c, b, this.imgs.length)
 },
 color: function(a) {
 a = (~~ (255 * a)).toString(16);
 2 > a.length && (a = "0" + a);
 a = a.substr(0, 2);
 return "#" + a + a + a
 },
 exec: function(a) {
 this.each(function(b, c, e, d, f) {
 b.getElementsByTagName("span")[0].style.display = "none";
 c == a && (b.getElementsByTagName("span")[0].style.display = "block");
 d = Math.min(c / a, a / c);
 f = Math.sin(90 * (Math.PI / 180) * d) * (1 - this.scale);
 b.style.zIndex = Math.ceil(1E4 * f);
 b.style.borderColor = this.color(f + this.scale);
 b.style.width = this.x * (f + this.scale) - 2 * this.border + "px";
 b.style.height = this.y * (f + this.scale) - 2 * this.border + "px";
 b.style.marginLeft = this.x * f / -2 + "px"
 })
 }
};
new Bookrack(document.getElementById('bookrack'), 120, 160);
</script>
<!--代码部分end-->

</body>
</html>

以上就是为大家分享的js钢琴按钮波浪式图片排列效果代码,希望大家可以喜欢。

Javascript 相关文章推荐
分享别人写的一个小型js框架
Aug 13 Javascript
11款新鲜的jQuery插件[附所有demo下载]
Jan 24 Javascript
jQuery之选择组件的深入解析
Jun 19 Javascript
script不刷新页面的联动前后代码
Sep 18 Javascript
javascript计算用户打开网页的停留时间
Jan 09 Javascript
浅谈javascript回调函数
Dec 07 Javascript
使用jquery组件qrcode生成二维码及应用指南
Feb 22 Javascript
javascript学习小结之prototype
Dec 03 Javascript
深入理解JavaScript中Ajax
Aug 02 Javascript
3分钟掌握常用的JS操作JSON方法总结
Apr 25 Javascript
JavaScript解析及序列化JSON的方法实例分析
Jan 04 Javascript
Vue的全局过滤器和私有过滤器的实现
Apr 20 Javascript
javascript中alert()与console.log()的区别
Aug 26 #Javascript
JavaScript基本数据类型及值类型和引用类型
Aug 25 #Javascript
基于jQuery实现的QQ表情插件
Aug 25 #Javascript
js中javascript:void(0) 真正含义
Nov 05 #Javascript
js实现三张图(文)片一起切换的banner焦点图
Aug 25 #Javascript
js焦点文字滚动效果代码分享
Aug 25 #Javascript
JS实现灵巧的下拉导航效果代码
Aug 25 #Javascript
You might like
php5新改动之短标记启用方法
2008/09/11 PHP
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
PHP 字符串加密函数(在指定时间内加密还原字符串,超时无法还原)
2010/04/28 PHP
PHP查询快递信息的方法
2015/03/07 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
Laravel修改验证提示信息为中文的示例
2019/10/23 PHP
PHP实现简易图形计算器
2020/08/28 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
javascript对talbe进行动态添加、删除、验证实现代码
2012/03/29 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
js脚本分页代码分享(7种样式)
2015/08/19 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
小程序云开发实战小结
2018/10/25 Javascript
如何使用less实现随机下雪动画详解
2019/01/02 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
[01:45]2014DOTA2 TI预选赛预选赛 战前探营!
2014/05/21 DOTA
[19:15]DK战队纪录片
2014/09/02 DOTA
Python编程中time模块的一些关键用法解析
2016/01/19 Python
Python找出最小的K个数实例代码
2018/01/04 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
企业管理专业个人求职信范文
2013/09/24 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
学校安全防火方案
2014/06/07 职场文书
关于爱国的标语
2014/06/24 职场文书
团日活动总结怎么写
2014/06/25 职场文书
小学爱国卫生月活动总结
2014/06/30 职场文书
关于读书的演讲稿500字
2014/08/27 职场文书
六查六看剖析材料
2014/10/06 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
在 Python 中利用 Pool 进行多线程
2022/04/24 Python