JS与CSS3实现图片响应鼠标移动放大效果示例


Posted in Javascript onMay 04, 2018

本文实例讲述了JS与CSS3实现图片响应鼠标移动放大效果。分享给大家供大家参考,具体如下:

今天看网易的网站上,当我把鼠标放上去的时候发现图片放大,移开图片缩小,于是自行尝试,结果如下。

方法一:使用js和css3

效果如图:

JS与CSS3实现图片响应鼠标移动放大效果示例

这样的实现非常简单,就是利用js的mouseovermouseout事件,但是不知道如何使图片从中间放大,日后再行尝试吧,代码如下:

<!DOCTYPE html>
<html>
<head>
  <title>网易图片动画</title>
  <style>
    div.img {
      width: 220px;
      height: 170px;
      margin: 200px auto;
      overflow: hidden;
    }
    img.bigger {
      width: 100%;
      height:100%;
    }
    @keyframes bigger {
      from {width: 100%;height: 100%;}
      to {width: 110%; height: 110%;}
    }
    @keyframes smaller {
      from {width: 110%;height: 110%;}
      to {width: 100%; height: 100%;}
    }
  </style>
</head>
<body>
  <div class="img">
    <img class="bigger" src="http://cms-bucket.nosdn.127.net/d9b6afa0bad743f88c1780c3a064202c20170218074455.jpeg?imageView&thumbnail=185y116&quality=85" alt="">
  </div>
  <script>
    var img = document.querySelector("img");
    img.onmouseover = function () {
      img.style.cssText = "animation: bigger 2s;width:110%; height:110%;";
    }
    img.onmouseout = function () {
      img.style.cssText = "animation: smaller 2s";
    }
  </script>
</body>
</html>

方法二:使用css3方法

css3的确给我们带来了很多好处,是我们处理问题更加方便。 这里使用 transform:scale();即可实现,但是这个要结合hover来使用,并且设置好transition的时长才有更好的效果,话不多说效果如下:

JS与CSS3实现图片响应鼠标移动放大效果示例

这个效果是不是好了很多呢,可以看到它自身就是从中心开始扩大的。
但是只要我们添加transform-origin属性就可以很好地控制变化的中心点了,如:

transform-origin: 0 0;
transform-origin: 100% 0;
transform-origin: 0 100%;
transform-origin: 100% 100%;

分别表示从左上角、右上角、左下角、右下角扩张,可想而知,默认的transform-origin为50% 50%.

源码如下:

<!DOCTYPE html>
<html>
<head>
  <title>网易图片动画</title>
  <style>
    div.img {
      width: 220px;
      height: 170px;
      margin: 200px auto;
      overflow: hidden;
    }
    img.bigger {
      width: 100%;
      height:100%;
      transition:transform 2s;
    }
    img.bigger:hover{
      transform: scale(1.2,1.2);
    }
  </style>
</head>
<body>
  <div class="img">
    <img class="bigger" src="http://cms-bucket.nosdn.127.net/d9b6afa0bad743f88c1780c3a064202c20170218074455.jpeg?imageView&thumbnail=185y116&quality=85" alt="">
  </div>
</body>
</html>

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
用js实现多域名不同文件的调用方法
Jan 12 Javascript
总结AJAX相关JS代码片段和浏览器模型
Aug 15 Javascript
javascript 网页跳转的方法
Dec 24 Javascript
一款js和css代码压缩工具[附JAVA环境配置方法]
Apr 16 Javascript
json定义及jquery操作json的方法
Oct 03 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
Dec 08 Javascript
详解webpack es6 to es5支持配置
May 04 Javascript
AngularJS实现的输入框字数限制提醒功能示例
Oct 26 Javascript
vue cli webpack中使用sass的方法
Feb 24 Javascript
vue如何引入sass全局变量
Jun 28 Javascript
Vue 实现创建全局组件,并且使用Vue.use() 载入方式
Aug 11 Javascript
js实现三角形粒子运动
Sep 22 Javascript
Vue 父子组件数据传递的四种方式( inheritAttrs + $attrs + $listeners)
May 04 #Javascript
JS模拟实现哈希表及应用详解
May 04 #Javascript
vue地区选择组件教程详解
May 04 #Javascript
Vue 按键修饰符处理事件的方法
May 04 #Javascript
vue mint-ui tabbar变组件使用
May 04 #Javascript
Vue结合Video.js播放m3u8视频流的方法示例
May 04 #Javascript
原生javascript AJAX 三级联动的实现代码
May 04 #Javascript
You might like
PHP创建文件及写入数据(覆盖写入,追加写入)的方法详解
2019/02/15 PHP
PHP实现的多进程控制demo示例
2019/07/22 PHP
JS Array对象入门分析
2008/10/30 Javascript
JavaScript 事件对象的实现
2009/07/13 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jQuery中document与window以及load与ready 区别详解
2014/12/29 Javascript
JavaScript错误处理
2015/02/03 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
JavaScript取得WEB安全颜色列表的方法
2015/07/14 Javascript
jquery实现平滑的二级下拉菜单效果
2015/08/26 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
jQuery File Upload文件上传插件使用详解
2016/12/06 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
JavaScript实现换肤功能
2017/09/15 Javascript
vue绑定的点击事件阻止冒泡的实例
2018/02/08 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
详解React之key的使用和实践
2018/09/29 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
[46:09]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第三场
2014/05/26 DOTA
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
Python中的赋值、浅拷贝、深拷贝介绍
2015/03/09 Python
Python简单生成随机姓名的方法示例
2017/12/27 Python
python装饰器深入学习
2018/04/06 Python
Python中pip更新和三方插件安装说明
2018/07/08 Python
python3 mmh3安装及使用方法
2019/10/09 Python
Python OpenCV视频截取并保存实现代码
2019/11/30 Python
美津浓美国官网:Mizuno美国
2018/08/07 全球购物
行政助理岗位职责
2013/11/10 职场文书
经贸专业毕业生求职信
2014/03/23 职场文书
法院先进个人事迹材料
2014/05/04 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
先进个人自荐书
2015/03/06 职场文书