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 上万关键字瞬间匹配实现代码
Jul 07 Javascript
理解Javascript闭包
Nov 01 Javascript
jQuery子窗体取得父窗体元素的方法
May 11 Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
Oct 26 Javascript
BootstrapValidator不触发校验的实现代码
Sep 28 Javascript
浅谈javascript中的三种弹窗
Oct 21 Javascript
Web纯前端“旭日图”实现元素周期表
Mar 10 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
Aug 11 Javascript
微信小程序HTTP请求从0到1封装
Sep 09 Javascript
RxJS在TypeScript中的简单使用详解
Apr 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
PHP中英混合字符串截取函数代码
2011/07/17 PHP
yii操作cookie实例简介
2014/07/09 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
奇妙的js
2007/09/24 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
2013/11/28 Javascript
javascript实现可拖动变色并关闭层窗口实例
2015/05/15 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
2015/08/10 Javascript
jQuery.form插件的使用及跨域异步上传文件
2016/04/27 Javascript
JavaScript使用键盘输入控制实现数字验证功能
2016/08/19 Javascript
jquery 动态增加,减少input表单的简单方法(必看)
2016/10/12 Javascript
jQuery+json实现动态创建复杂表格table的方法
2016/10/25 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
react路由配置方式详解
2017/08/07 Javascript
Vuejs学习笔记之使用指令v-model完成表单的数据双向绑定
2019/04/29 Javascript
vue-loader中引入模板预处理器的实现
2019/09/04 Javascript
Nodejs + Websocket 指定发送及群聊的实现
2020/01/09 NodeJs
Vue的Eslint配置文件eslintrc.js说明与规则介绍
2020/02/03 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
利用Python实现颜色色值转换的小工具
2016/10/27 Python
你真的了解Python的random模块吗?
2017/12/12 Python
python实现事件驱动
2018/11/21 Python
对python借助百度云API对评论进行观点抽取的方法详解
2019/02/21 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
python各层级目录下import方法代码实例
2020/01/20 Python
python模拟哔哩哔哩滑块登入验证的实现
2020/04/24 Python
pycharm 复制代码出现空格的解决方式
2021/01/15 Python
金融专业个人的自我评价
2013/10/18 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
读书笔记怎么写
2015/07/01 职场文书
运动会1000米加油稿
2015/07/21 职场文书
浅谈redis缓存在项目中的使用
2021/05/20 Redis
快速学习Oracle触发器和游标
2021/06/30 Oracle
Python OpenCV超详细讲解基本功能
2022/04/02 Python