css3中仿放大镜效果的几种方式原理解析


Posted in HTML / CSS onDecember 03, 2020

文章标题为啥是“仿放大镜”?
因为我今天要说的,并不是像一般说的,鼠标移入时旁边弹出一个局部的大图,那很好写,也没多少技巧(用相对定位定位父元素(或说:原图),绝对定位定位局部大图(目的:让它处于原图旁边某位置),在旁边用css控制样式并用鼠标事件监听,,,当然,你也可以直接用jQuery中的接口——$(‘类名’).jqzoom({zoomwidth:xx; zoomheight: xx; zoomType:‘reverse’;})最后的Type定义了放大镜类型)

好了,言归正传,我今天要说的是 鼠标移入时图片在原位置放大 的动画!
没错,就是动画。(如下:从某网站抠图)

css3中仿放大镜效果的几种方式原理解析

起初想到的是css3的 @keyframes属性 ,因为这个用的多一些嘛,
比如:你可以用 from…to 来指定样式——入场动画和出场动画

还比如:你可以通过transition实现( 今天重点

先知:CSS3属性transform——(旋转:rotate,缩放:scale,倾斜:skew,移动:translate)

例如:
元素正常宽度是 100px,鼠标经过时宽度变为 200px。
如果只设置宽度值,效果如下图:

css3中仿放大镜效果的几种方式原理解析
 

看起来是不是很生硬。我们再看一下加上 transition 的效果:
 

css3中仿放大镜效果的几种方式原理解析
 

看了两个效果的差别,就大概明白 transition 属性的作用了吧。本例目标和宽度变化类似,只不过是换了一个最终效果。请继续往下看详细代码:

<div id="container">
  <img src="./little_boy.jpg" />
  <span>大家好呀!我是谁你猜?</span>
</div>
#container {
  margin: 200px;
  position: relative;
  width: 300px;
  height: 300px;
  background-color: greenyellow;
  transition: transform .5s ease-out;
}

#container img {
  width: 100%;
  height: 100%;
}

#container span {
  position: absolute;
  top: 0;
  left: 0;
  margin: 6px;
  width: 100%;
  height: 20px;
  line-height: 20px;
  font-size: 18px;
  color: white;
  text-align: center;
}

#container:hover {
  transform: scale(1.3);
}

解析:
(1)添加容器的 hover 伪类,通过 transform 属性设置容器放大效果
(2)设置容器的 transition 属性,属性值为 transform 以及其动画时长

到此这篇关于css3中仿放大镜效果的几种方式原理解析的文章就介绍到这了,更多相关css3仿放大镜内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

HTML / CSS 相关文章推荐
CSS 3.0文字悬停跳动特效代码
Oct 26 HTML / CSS
html5本地存储_动力节点Java学院整理
Jul 12 HTML / CSS
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
Jan 31 HTML / CSS
HTML5 Canvas鼠标与键盘事件demo示例
Jul 04 HTML / CSS
html5 canvas实现圆形时钟代码分享
Dec 25 HTML / CSS
深入剖析HTML5 内联框架iFrame
May 04 HTML / CSS
浅谈html5 video 移动端填坑记
Jan 15 HTML / CSS
详解px单位html5响应式方案
Mar 08 HTML / CSS
详解android与HTML混合开发总结
Jun 06 HTML / CSS
使用html2canvas.js实现页面截图并显示或上传的示例代码
Dec 18 HTML / CSS
Canvas图片分割效果的实现
Jul 29 HTML / CSS
Html5踩坑记之mandMobile使用小记
Apr 02 HTML / CSS
CSS3 实现飘动的云朵动画
Dec 01 #HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
Nov 30 #HTML / CSS
CSS3 实现时间轴动画
Nov 25 #HTML / CSS
纯CSS3实现的井字棋游戏
Nov 25 #HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
Nov 25 #HTML / CSS
CSS3 实现倒计时效果
Nov 25 #HTML / CSS
CSS3贝塞尔曲线示例:创建链接悬停动画效果
Nov 19 #HTML / CSS
You might like
现磨咖啡骗局!现磨咖啡=新鲜咖啡?现磨咖啡背后的猫腻你不懂!
2019/03/28 冲泡冲煮
Drupal简体中文语言包安装教程
2014/09/27 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
JS打开图片另存为对话框实现代码
2012/12/26 Javascript
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
css transform 3D幻灯片特效实现步骤解读
2013/03/27 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
在浏览器中打开或关闭JavaScript的方法
2015/06/03 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
DEDECMS如何为文章添加HOT NEW标志图片
2015/08/14 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
提高Web性能的前端优化技巧总结
2017/02/27 Javascript
微信小程序之获取当前位置经纬度以及地图显示详解
2017/05/09 Javascript
利用Vue.js实现求职在线之职位查询功能
2017/07/03 Javascript
JavaScript中如何判断一个值的类型
2017/09/15 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
js动态设置select下拉菜单的默认选中项实例
2018/08/21 Javascript
关于Vue源码vm.$watch()内部原理详解
2019/04/26 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
python网络编程实例简析
2014/09/26 Python
Python中subprocess的简单使用示例
2015/07/28 Python
Python模拟登录验证码(代码简单)
2016/02/06 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
django 数据库连接模块解析及简单长连接改造方法
2019/08/29 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
python正则过滤字母、中文、数字及特殊字符方法详解
2020/02/11 Python
Python开发之pip安装及使用方法详解
2020/02/21 Python
浅谈Python中range与Numpy中arange的比较
2020/03/11 Python
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
基层党支部承诺书
2015/04/30 职场文书
pycharm无法导入lxml的解决办法
2021/03/31 Python