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 相关文章推荐
面向对象Javascript核心支持代码分享
May 23 Javascript
利用jquery.qrcode在页面上生成二维码且支持中文
Feb 12 Javascript
jquery判断小数点两位和自动删除小数两位后的数字
Mar 19 Javascript
javascript学习笔记(一)基础知识
Sep 30 Javascript
深入理解JavaScript内置函数
Jun 03 Javascript
jQuery属性选择器用法示例
Sep 09 Javascript
浅谈jquery页面初始化的4种方式
Nov 27 Javascript
bootstrap modal弹出框的垂直居中
Dec 14 Javascript
vue-dialog的弹出层组件
May 25 Javascript
JavaScript指定断点操作实例教程
Sep 18 Javascript
微信小程序实现点击卡片 翻转效果
Sep 04 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
Jan 08 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
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
2017/05/20 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
Mac下关于PHP环境和扩展的安装详解
2019/10/17 PHP
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
File, FileReader 和 Ajax 文件上传实例分析(php)
2011/04/27 Javascript
jquery提交form表单时禁止重复提交的方法
2014/02/13 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
jQuery实现下拉框功能实例代码
2016/05/06 Javascript
js字符串截取函数slice、substring和substr的比较
2016/05/17 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
JS尾递归的实现方法及代码优化技巧
2019/01/19 Javascript
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
详解Python的单元测试
2015/04/28 Python
简单实现python爬虫功能
2015/12/31 Python
python中异常报错处理方法汇总
2016/11/20 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
Python线程创建和终止实例代码
2018/01/20 Python
python MySQLdb使用教程详解
2018/03/20 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python爬虫 execjs安装配置及使用
2019/07/30 Python
Python通过两个dataframe用for循环求笛卡尔积
2020/04/29 Python
HTML5的表单(绝对特别强大的功能)使用示例
2013/06/20 HTML / CSS
银行会计财务工作个人的自我评价
2013/10/29 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
房地产项目建议书
2014/03/12 职场文书
优乐美广告词
2014/03/14 职场文书
纪委书记群众路线整改措施思想汇报
2014/10/09 职场文书
Python实现视频中添加音频工具详解
2021/12/06 Python