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 相关文章推荐
Javascript isArray 数组类型检测函数
Oct 08 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
Apr 01 Javascript
jQuery中prepend()方法用法实例
Dec 25 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
Jan 28 Javascript
实用又漂亮的BootstrapValidator表单验证插件
May 30 Javascript
JavaScript实现DOM对象选择器
Sep 24 Javascript
Bootstrap实现的经典栅格布局效果实例【附demo源码】
Mar 30 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
Aug 08 Javascript
vue中v-for通过动态绑定class实现触发效果
Dec 06 Javascript
vue router 用户登陆功能的实例代码
Apr 24 Javascript
JS回调函数深入理解
Oct 16 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
yii框架redis结合php实现秒杀效果(实例代码)
2017/10/26 PHP
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
JavaScript 面向对象与原型
2015/04/10 Javascript
ECMAScript6新增值比较函数Object.is
2015/06/12 Javascript
jquery简单插件制作(fn.extend)完整实例
2016/05/24 Javascript
vue2.0使用Sortable.js实现的拖拽功能示例
2017/02/21 Javascript
ES6中Symbol类型用法实例详解
2017/04/06 Javascript
jQuery修改DOM结构_动力节点Java学院整理
2017/07/05 jQuery
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
如何测量vue应用运行时的性能
2019/06/21 Javascript
微信小程序实现左滑动删除效果
2020/03/30 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
python实现自动更换ip的方法
2015/05/05 Python
Python获取邮件地址的方法
2015/07/10 Python
利用python发送和接收邮件
2016/09/27 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
Python爬虫抓取技术的一些经验
2019/07/12 Python
selenium2.0中常用的python函数汇总
2019/08/05 Python
python利用dlib获取人脸的68个landmark
2019/11/27 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
Python日志:自定义输出字段 json格式输出方式
2020/04/27 Python
python二维图制作的实例代码
2020/12/03 Python
css3使用animation属性实现炫酷效果(推荐)
2020/02/04 HTML / CSS
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
MAC彩妆澳洲官网:M·A·C AU
2021/01/17 全球购物
求∏的近似值,直到最后一项的绝对值小于指定的数
2016/02/12 面试题
个人优缺点自我评价
2014/01/27 职场文书
面试后的感谢信范文
2014/02/01 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
公司授权委托书样本
2014/09/15 职场文书
经营场所证明范本
2015/06/19 职场文书
Python 实现定积分与二重定积分的操作
2021/05/26 Python
MySQL注入基础练习
2021/05/30 MySQL
Windows Server 2008配置防火墙策略详解
2022/06/28 Servers