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 读取元素的CSS信息的代码
Feb 07 Javascript
Javascript拓展String方法小结
Jul 08 Javascript
取得元素的左和上偏移量的方法
Sep 17 Javascript
javascript自动生成包含数字与字符的随机字符串
Feb 09 Javascript
AngularJS基础 ng-init 指令简单示例
Aug 02 Javascript
JS简单获取及显示当前时间的方法
Aug 03 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 jQuery
Vue 将后台传过来的带html字段的字符串转换为 HTML
Mar 29 Javascript
vue+canvas实现炫酷时钟效果的倒计时插件(已发布到npm的vue2插件,开箱即用)
Nov 05 Javascript
详解element-ui日期时间选择器的日期格式化问题
Apr 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
PHP4中实现动态代理
2006/10/09 PHP
php获取通过http协议post提交过来xml数据及解析xml
2012/12/16 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
使用ltrace工具跟踪PHP库函数调用的方法
2016/04/25 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
PHP实现通过strace定位故障原因的方法
2018/04/29 PHP
JavaScript cookie的设置获取删除详解
2014/02/11 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
javascript实现PC网页里的拖拽效果
2016/03/14 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
微信小程序 欢迎界面开发的实例详解
2016/11/30 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
浅析javaScript中的浅拷贝和深拷贝
2017/02/15 Javascript
json字符串传到前台input的方法
2018/08/06 Javascript
vue解决花括号数据绑定不成功的问题
2019/10/30 Javascript
Vue 实现v-for循环的时候更改 class的样式名称
2020/07/17 Javascript
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
Python实现定时自动关闭的tkinter窗口方法
2019/02/16 Python
python爬虫解决验证码的思路及示例
2019/08/01 Python
python解析命令行参数的三种方法详解
2019/11/29 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
如何通过python检查文件是否被占用
2020/12/18 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
存储过程的优缺点是什么
2015/01/10 面试题
delegate与普通函数的区别
2014/01/22 面试题
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
党委书记岗位职责
2013/11/24 职场文书
运动会800米加油稿
2014/02/22 职场文书
资金主管岗位职责范本
2014/03/04 职场文书
诚实守信道德模范事迹材料
2014/08/15 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
Dashboard管理Kubernetes集群与API访问配置
2022/04/01 Servers