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 相关文章推荐
如何实现浏览器上的右键菜单
Jul 10 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
Jun 24 Javascript
基于jQuery实现的无刷新表格分页实例
Feb 17 Javascript
js自定义select下拉框美化特效
May 12 Javascript
JavaScript中的对象继承关系
Aug 01 Javascript
jquery滚动条插件slimScroll使用方法
Feb 09 Javascript
JS实现的邮箱提示补全效果示例
Jan 30 Javascript
vue实现手机端省市区区域选择
Sep 27 Javascript
Vue防止白屏添加首屏动画的实例
Oct 31 Javascript
js实现简单的倒计时
Jan 28 Javascript
Element el-button 按钮组件的使用详解
Feb 01 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中将网页导出为Word文档的代码
2012/05/25 PHP
Php中用PDO查询Mysql来避免SQL注入风险的方法
2013/04/25 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
js最简单的拖拽效果实现代码
2010/09/24 Javascript
C#中TrimStart,TrimEnd,Trim在javascript上的实现
2011/01/17 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
JQuery实现鼠标滑过显示导航下拉列表
2013/09/12 Javascript
jquery控制select的text/value值为选中状态
2014/06/03 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
详解js私有作用域中创建特权方法
2016/01/25 Javascript
javascript仿京东导航左侧分类导航下拉菜单效果
2020/11/25 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
Java Varargs 可变参数用法详解
2020/01/28 Javascript
Vue性能优化的方法
2020/07/30 Javascript
vue element ui validate 主动触发错误提示操作
2020/09/21 Javascript
一些常用的Python爬虫技巧汇总
2016/09/28 Python
Python构建XML树结构的方法示例
2017/06/30 Python
numpy自动生成数组详解
2017/12/15 Python
Python pymongo模块常用操作分析
2018/09/01 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
python障碍式期权定价公式
2019/07/19 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
python函数定义和调用过程详解
2020/02/09 Python
Python处理PDF与CDF实例
2020/02/26 Python
Python文件读写w+和r+区别解析
2020/03/26 Python
西安众合通用.net笔试题
2013/03/18 面试题
婚礼证婚人证婚词
2014/01/08 职场文书
质量提升方案
2014/06/16 职场文书
岗位职责说明书模板
2014/07/30 职场文书
民政局个人整改措施
2014/09/24 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书