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 相关文章推荐
JQuery下关于$.Ready()的分析
Dec 13 Javascript
js创建数据共享接口——简化框架之间相互传值
Oct 23 Javascript
兼容主流浏览器的JS复制内容到剪贴板
Dec 12 Javascript
node.js中的fs.read方法使用说明
Dec 17 Javascript
jQuery animate和CSS3相结合实现缓动追逐效果附源码下载
Apr 18 Javascript
详解Javascript获取缓存和清除缓存API
May 25 Javascript
Node.js模块全局安装路径配置方法
May 17 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
Nov 30 Javascript
Vue指令指令大全
Feb 09 Javascript
JavaScript仿京东秒杀倒计时
Mar 17 Javascript
JS数组的常用方法整理
Mar 31 Javascript
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
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 和 HTML
2006/10/09 PHP
php Try Catch异常测试
2009/03/01 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
微信支付扫码支付php版
2016/07/22 PHP
老生常谈PHP中的数据结构:DS扩展
2017/07/17 PHP
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
jquery常用操作小结
2014/07/21 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
JS实现点击按钮获取页面高度的方法
2015/11/02 Javascript
详解JSON1:使用TSQL查询数据和更新JSON数据
2016/11/21 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
laydate.js日期时间选择插件
2017/01/04 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
BootStrap组件之进度条的基本用法
2017/01/19 Javascript
localStorage的黑科技-js和css缓存机制
2017/02/06 Javascript
详解AngularJS ui-sref的简单使用
2017/04/24 Javascript
vue.js声明式渲染和条件与循环基础知识
2017/07/31 Javascript
JS实现调用本地摄像头功能示例
2018/05/18 Javascript
小程序绑定用户方案优化小结
2019/05/15 Javascript
JS实现水平遍历和嵌套递归操作示例
2019/08/15 Javascript
python 字典(dict)遍历的四种方法性能测试报告
2014/06/25 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Python实现图像去噪方式(中值去噪和均值去噪)
2019/12/18 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
虚拟机下载python是否需要联网
2020/07/27 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
什么是事务?事务有哪些性质?
2012/03/11 面试题
聚美优品恶搞广告词
2014/03/14 职场文书
大学生实习鉴定评语
2014/04/25 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
2015年党风廉政建设个人总结
2015/08/18 职场文书
教师外出学习心得体会
2016/01/18 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫