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 相关文章推荐
js每隔5分钟执行一次ajax请求的实现方法
Nov 27 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
May 04 Javascript
jquery处理json数据实例分析
Jun 03 Javascript
浏览器缩放检测的js代码
Sep 28 Javascript
浅析javascript的间隔调用和延时调用
Nov 12 Javascript
基于javascript制作微博发布栏效果
Apr 04 Javascript
使用jquery如何获取时间
Oct 13 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
javascript 缓冲运动框架的实现
Sep 29 Javascript
解决angularjs中同步执行http请求的方法
Aug 13 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
Aug 12 Javascript
Vue中通过Vue.extend动态创建实例的方法
Aug 13 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
使用TinyButStrong模板引擎来做WEB开发
2007/03/16 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
一个JS翻页效果
2007/07/23 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
js 赋值包含单引号双引号问题的解决方法
2014/02/26 Javascript
js与jquery回车提交的方法
2015/02/03 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
jQuery向父辈遍历的简单方法
2016/09/18 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
JavaScript中交换值的10种方法总结
2020/08/18 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
详细解析Python中__init__()方法的高级应用
2015/05/11 Python
Python获取运行目录与当前脚本目录的方法
2015/06/01 Python
关于Python 的简单栅格图像边界提取方法
2019/07/05 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
英国领先的餐饮折扣俱乐部:Gourmet Society
2020/07/26 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
幼儿学前班评语
2014/12/29 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
博物馆观后感
2015/06/05 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP
Vue全家桶入门基础教程
2021/05/14 Vue.js
python元组打包和解包过程详解
2021/08/02 Python
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python