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 相关文章推荐
网页里控制图片大小的相关代码
Jun 25 Javascript
javascript是怎么继承的介绍
Jan 05 Javascript
javascript实现抽奖程序的简单实例
Jun 07 Javascript
es6系列教程_ Map详解以及常用api介绍
Sep 25 Javascript
input type=file 选择图片并且实现预览效果的实例
Oct 26 Javascript
微信小程序实现动态设置页面标题的方法【附源码下载】
Nov 29 Javascript
解决npm管理员身份install时出现权限的问题
Mar 16 Javascript
JS使用JSON.parse(),JSON.stringify()实现对对象的深拷贝功能分析
Mar 06 Javascript
vue router导航守卫(router.beforeEach())的使用详解
Apr 19 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
vue内置组件keep-alive事件动态缓存实例
Oct 30 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开发框架总结收藏
2008/04/24 PHP
php下封装较好的数字分页方法
2010/11/23 PHP
redis 队列操作的例子(php)
2012/04/12 PHP
ThinkPHP在新浪SAE平台的部署实例
2014/10/31 PHP
smarty高级特性之对象的使用方法
2015/12/25 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
jQuery 相关控件的事件操作分解
2009/08/03 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
defer属性导致引用JQuery的页面报“浏览器无法打开网站xxx,操作被中止”错误的解决方法
2010/04/27 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
2017/02/27 Javascript
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
javascript编程实现栈的方法详解【经典数据结构】
2017/04/11 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python实现端口复用实例代码
2014/07/03 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
Python使用pymysql模块操作mysql增删改查实例分析
2019/12/19 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
Django中F函数的使用示例代码详解
2020/07/06 Python
Python如何使用27行代码绘制星星图
2020/07/20 Python
CSS3轻松实现清新 Loading 效果的简单实例
2016/06/06 HTML / CSS
工程造价自荐信
2013/10/09 职场文书
大学生创业策划书
2014/02/02 职场文书
农村改厕实施方案
2014/03/22 职场文书
公司合作意向书
2014/04/01 职场文书
顶岗实习协议书
2015/01/29 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
喋血孤城观后感
2015/06/08 职场文书
初中班主任工作随笔
2015/08/15 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python