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 相关文章推荐
jQuery的实现原理的模拟代码 -1 核心部分
Aug 01 Javascript
Jquery+CSS3实现一款简洁大气带滑动效果的弹出层
May 15 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
Aug 05 Javascript
JavaScript版的TwoQueues缓存模型
Dec 29 Javascript
JavaScript实现点击按钮复制指定区域文本(推荐)
Nov 25 Javascript
理解javascript中的Function.prototype.bind的方法
Feb 03 Javascript
详解Vue使用 vue-cli 搭建项目
Apr 20 Javascript
ztree简介_动力节点Java学院整理
Jul 19 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
Sep 20 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
Sep 23 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
Feb 15 Javascript
JavaScript 中for/of,for/in 的详细介绍
Nov 17 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 程序授权验证开发思路
2009/07/09 PHP
php数组合并的二种方法
2014/03/21 PHP
php使用$_POST或$_SESSION[]向js函数传参
2014/09/16 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
ext实现完整的登录代码
2008/08/08 Javascript
用jQuery技术实现Tab页界面之二
2009/09/21 Javascript
在浏览器中获取当前执行的脚本文件名的代码
2011/07/19 Javascript
js带按钮的提示框可供选择示例代码
2013/09/17 Javascript
js调用iframe实现打印页面内容的方法
2014/03/04 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
网站基于flash实现的Banner图切换效果代码
2014/10/14 Javascript
JS打字效果的动态菜单代码分享
2015/08/21 Javascript
AngularJS页面访问时出现页面闪烁问题的解决
2016/03/06 Javascript
jquery分页插件jquery.pagination.js使用方法解析
2016/04/01 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
nginx配置React静态页面的方法教程
2017/11/03 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
echarts大屏字体自适应的方法步骤
2019/07/12 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
python 文件与目录操作
2008/12/24 Python
跟老齐学Python之有点简约的元组
2014/09/24 Python
详解pandas的外部数据导入与常用方法
2019/05/01 Python
HTML的form表单和django的form表单
2019/07/25 Python
基于plt.title无法显示中文的快速解决
2020/05/16 Python
英国最大的宝石首饰超市:QP Jewellers
2018/09/23 全球购物
家长给老师的道歉信
2014/01/13 职场文书
会计自荐信范文
2014/03/09 职场文书
党支部公开承诺书
2014/03/28 职场文书
2014乡镇干部对照检查材料思想汇报
2014/09/26 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
2016年安全月活动总结
2016/04/06 职场文书
总结Python变量的相关知识
2021/06/28 Python
go goroutine 怎样进行错误处理
2021/07/16 Golang