js钢琴按钮波浪式图片排列效果代码分享

 更新时间:2015年08月26日 09:21:28   投稿:lijiao  
这篇文章主要为大家详细介绍了js钢琴按钮波浪式图片排列效果,推荐给大家,有需要的小伙伴可以参考下。

本文实例讲述了js钢琴按钮波浪式图片排列效果。分享给大家供大家参考。具体如下:

这是一款基于javascript实现的钢琴按钮波浪式图片排列效果,鼠标在图片列表上移动,当前图片高亮显示,以此为根基点,周围的图片逐渐变小,所以有种手指划过钢琴键盘的感觉。

运行效果图:                                -------------------查看效果-------------------

小提示:浏览器中如果不能正常运行,可以尝试切换浏览模式。

注意:图片的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对象Clone实例分析

    Javascript对象Clone实例分析

    这篇文章主要介绍了Javascript对象Clone用法,实例分析了javascript对象克隆的相关技巧,需要的朋友可以参考下
    2015-06-06
  • JavaScript获取URL参数的方法之一

    JavaScript获取URL参数的方法之一

    本文主要介绍了JavaScript获取URL参数的方法。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • JS实现京东放大镜效果

    JS实现京东放大镜效果

    这篇文章主要为大家详细介绍了JS实现京东放大镜效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07
  • 通过JavaScript实现动态圣诞树详解

    通过JavaScript实现动态圣诞树详解

    这篇文章主要为大家介绍几个好看的基于HTML+CSS+JS的圣诞树,希望圣诞节那天圣诞老爷爷能把我喜欢的你塞到我床上。感兴趣的小伙伴可以跟随小编一起学习一下
    2021-12-12
  • HTML node相关的一些资料整理

    HTML node相关的一些资料整理

    HTML node相关的一些资料整理
    2010-01-01
  • js实现鼠标触发图片抖动效果的方法

    js实现鼠标触发图片抖动效果的方法

    这篇文章主要介绍了js实现鼠标触发图片抖动效果的方法,通过定时器定时递归调用rattleimage函数实现抖动效果,非常实用,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • JS实现touch 点击滑动轮播实例代码

    JS实现touch 点击滑动轮播实例代码

    这篇文章主要介绍了JS实现touch 点击滑动轮播实例代码,需要的朋友可以参考下
    2017-01-01
  • thinkphp实现无限分类(使用递归)

    thinkphp实现无限分类(使用递归)

    这篇文章主要介绍了在使用递归的情况下thinkphp实现无限分类,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • JavaScript如何将伪数组转换成数组 

    JavaScript如何将伪数组转换成数组 

    这篇文章主要介绍了JavaScript如何将伪数组转换成数组, 伪数组的主要特征是一个对象,并且该对象有length属性,更多参考内容,需要的小伙伴可以参考一下
    2022-07-07
  • javascript奇异的arguments分析

    javascript奇异的arguments分析

    在 Javascript 的函数中有个名为 arguments 的类数组对象。它看起来是那么的诡异而且名不经传,但众多的 Javascript 库都使用着它强大的功能。所以,它的特性需要每个 Javascript 程序员去熟悉它。
    2010-10-10

最新评论