JS实现图片高斯模糊切换效果的焦点图实例


Posted in Javascript onJanuary 21, 2017

焦点图相信对大家来说都不陌生,本文给大家分享的是一种图片高斯模糊切换效果的焦点图,下面话不多说了,来看看实现的效果图和实例代码吧。

效果图

JS实现图片高斯模糊切换效果的焦点图实例

实例代码

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
@-webkit-keyframes show
{
	0%{
		opacity:1;
		-webkit-transform:scale(1);
	}
	100%
	{
		opacity:.1;
		-webkit-transform:scale(3);
	}
}
body{ background:#e8d0ca;}
#wrap{width:600px; margin:100px auto;border:2px solid #000; position:relative;}
#list{ position:relative; height:310px;margin:0;padding:0; list-style:none;}
#list li{ width:281px;height:310px; background:url(http://cdn.attach.qdfuns.com/notes/pics/201701/17/113914zaxalfffaylelyxd.png) no-repeat; position:absolute;top:0; transition:.6s;}
#list span{ width:100%;height:100%; display:block;transition:.6s;}
#list li:nth-of-type(1){ left:0;z-index:1; -webkit-transform:scale(0.8);opacity:0.6;}
#list li:nth-of-type(1) span{ background:url(http://cdn.attach.qdfuns.com/notes/pics/201701/17/113914zfkmqfb0zzummnhy.png); opacity:1;}
#list li:nth-of-type(2){ left:calc(50% - 140px);background-image:url(http://cdn.attach.qdfuns.com/notes/pics/201701/17/113913nvvkf5pf4f77x55k.png);z-index:2; opacity:1;}
#list li:nth-of-type(2) span{ background:url(http://cdn.attach.qdfuns.com/notes/pics/201701/17/113914cx8x8z8ldfgckpmf.png); opacity:0;}
#list li:nth-of-type(3){ left:calc(100% - 281px);background-image:url(http://cdn.attach.qdfuns.com/notes/pics/201701/17/113914zhou55z6tlru25lu.png);z-index:1;-webkit-transform:scale(0.8); opacity:0.6;}
#list li:nth-of-type(3) span{ background:url(http://cdn.attach.qdfuns.com/notes/pics/201701/17/113914sofg7wja0c0cowjv.png); opacity:1;}
.btn{width:18px;height:29px; position:absolute;top:130px;z-index:10; cursor:pointer;}
.btn span{ position:absolute;left:0;top:0; background:inherit; width:100%;height:100%; transition:.5s;}
.btn:hover span:nth-of-type(1){-webkit-animation:show 2s infinite; }
.btn:hover span:nth-of-type(2){-webkit-animation:show 2s 1s infinite; }
#prev{ left:80px; background:url(http://cdn.attach.qdfuns.com/notes/pics/201701/17/113915d96e0acuyjccybcb.png) no-repeat;}
#next{ right:80px; background:url(http://cdn.attach.qdfuns.com/notes/pics/201701/17/113915kfhwnrawaeaibf6a.png) no-repeat;}
</style>
</head>
<body>
<div id="wrap">
	<ul id="list">
 	<li>
 	<span></span>
 </li>
 <li>
 	<span></span>
 </li>
 <li>
 	<span></span>
 </li>
 </ul>
 <div id="prev" class="btn">
 	<span></span>
 <span></span>
 </div>
 <div id="next" class="btn">
 	<span></span>
 <span></span>
 </div>
</div>
<script>
window.onload=function()
{
	var oList=document.getElementById("list");
	var aLi=oList.children;
	var oPrev=document.getElementById("prev");
	var oNext=document.getElementById("next");
	var arr=[];
	//arr.unshift(arr.pop());把最后一个删除添加到数组第一个
	//arr.push(arr.shift());把第一个删除添加到数组第一个
 //获取li的信息
	for(var i=0;i<aLi.length;i++)
	{
		var oSpan=aLi[i].children[0];
		arr[i]={left:getStyle(aLi[i],"left"),opacity:getStyle(aLi[i],"opacity"),scale:getStyle(aLi[i],"-webkit-transform"),zIndex:getStyle(aLi[i],"z-index"),alpha:getStyle(oSpan,"opacity")};
	}
	oPrev.onclick=function()
	{
		arr.unshift(arr.pop());
		toStyle();
	};
	oNext.onclick=function()
	{
		arr.push(arr.shift());
		toStyle();
	};
	function toStyle()
	{
		for(var i=0;i<aLi.length;i++)
		{
			var oSpan=aLi[i].children[0];
			aLi[i].style.left=arr[i].left;
			aLi[i].style.opacity=arr[i].opacity;
			aLi[i].style.WebkitTransform=arr[i].scale;	
			aLi[i].style.zIndex=arr[i].zIndex;	
			oSpan.style.opacity=arr[i].alpha;
		}	
	}
};
function getStyle(obj,attr)
{
 if( obj.currentStyle){
  return obj.currentStyle[attr]; 
 }
 return getComputedStyle(obj)[attr]; 
}
</script>
</body>
</html>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
使用jscript实现二进制读写脚本代码
Jun 09 Javascript
js 操作符实例代码
Oct 24 Javascript
js获取当前select 元素值的代码
Apr 19 Javascript
js 调用本地exe的例子(支持IE内核的浏览器)
Dec 26 Javascript
jquery插件开发之实现jquery手风琴功能分享
Mar 10 Javascript
jQuery获取节点和子节点文本的方法
Jul 22 Javascript
浅析JavaScript作用域链、执行上下文与闭包
Feb 01 Javascript
JavaScript 限制文本框不可输入英文单双引号的方法
Dec 20 Javascript
vue Render中slots的使用的实例代码
Jul 19 Javascript
javascript函数的节流[throttle]与防抖[debounce]
Nov 15 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
Apr 20 jQuery
在Angular项目使用socket.io实现通信的方法
Jan 05 Javascript
js实现用户输入的小写字母自动转大写字母的方法
Jan 21 #Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
Jan 21 #Javascript
利用transition实现文字上下抖动的效果
Jan 21 #Javascript
jQuery Ajax实现跨域请求
Jan 21 #Javascript
three.js快速入门【推荐】
Jan 21 #Javascript
详解Angualr 组件间通信
Jan 21 #Javascript
js的三种继承方式详解
Jan 21 #Javascript
You might like
php socket方式提交的post详解
2008/07/19 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
探讨php中遍历二维数组的几种方法详解
2013/06/08 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
prototype1.4中文手册
2006/09/22 Javascript
JavaScript中使用正则匹配多条,且获取每条中的分组数据
2010/11/30 Javascript
javascript函数作用域学习示例(js作用域)
2014/01/13 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
js实现对ajax请求面向对象的封装
2016/01/08 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
Element输入框带历史查询记录的实现示例
2019/01/15 Javascript
JavaScript格式化json和xml的方法示例
2019/01/22 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
2009/04/09 Python
python先序遍历二叉树问题
2017/11/10 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
类如何去实现接口
2013/12/19 面试题
大一自我鉴定范文
2013/10/04 职场文书
店长岗位职责
2013/11/21 职场文书
银行实习的自我鉴定
2013/12/10 职场文书
银行职员思想汇报
2013/12/31 职场文书
超市国庆节促销方案
2014/02/20 职场文书
美术社团活动总结
2014/06/27 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
地方课程教学计划
2015/01/19 职场文书
2015社区爱国卫生工作总结
2015/04/21 职场文书
贷款担保书范本
2015/09/22 职场文书
医护人员继续教育学习心得体会
2016/01/19 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
导游词之山海关
2019/12/10 职场文书