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 鼠标滚轮事件
Apr 09 Javascript
原生javascript兼容性测试实例
Jul 01 Javascript
jquery事件preventDefault()方法用法实例
Jan 16 Javascript
jquery+css3问卷答题卡翻页动画效果示例
Oct 26 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
Nov 10 Javascript
详解Vue2 无限级分类(添加,删除,修改)
Mar 07 Javascript
Vue实现双向数据绑定
May 03 Javascript
vue-router实现组件间的跳转(参数传递)
Nov 07 Javascript
ES6 迭代器(Iterator)和 for.of循环使用方法学习(总结)
Feb 08 Javascript
Node.js创建HTTP文件服务器的使用示例
May 11 Javascript
Windows下安装 node 的版本控制工具 nvm
Feb 06 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
Jul 23 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图片上传类带图片显示
2006/11/25 PHP
PHP 图片文件上传实现代码
2010/12/29 PHP
PHP读取大文件的类SplFileObject使用介绍
2014/04/09 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
thinkphp整合系列之极验滑动验证码geetest功能
2019/06/18 PHP
laravel 出现command not found问题的解决方案
2019/10/23 PHP
用js实现手把手教你月入万刀(转贴)
2007/11/07 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
一个简单不报错的summernote 图片上传案例
2016/07/11 Javascript
最佳的JavaScript错误处理实践
2016/07/16 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
利用ECharts.js画K线图的方法示例
2018/01/10 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
Element-UI中关于table表格的那些骚操作(小结)
2019/08/15 Javascript
原生js实现二级联动菜单
2019/11/27 Javascript
Python与shell的3种交互方式介绍
2015/04/11 Python
Python字符串处理之count()方法的使用
2015/05/18 Python
python 平衡二叉树实现代码示例
2018/07/07 Python
Django外键(ForeignKey)操作以及related_name的作用详解
2019/07/29 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
CSS3动画之流彩文字效果+图片模糊效果+边框伸展效果实现代码合集
2017/08/18 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
Java面试题汇总
2015/12/06 面试题
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
出纳岗位职责模板
2013/11/27 职场文书
初婚未育证明
2014/01/15 职场文书
学生通报表扬范文
2015/05/04 职场文书
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL
Golang 字符串的常见操作
2022/04/19 Golang