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 相关文章推荐
javascript Window及document对象详细整理
Jan 12 Javascript
js调用webservice中的方法实现思路及代码
Feb 25 Javascript
javascript跨域的4种方法和原理详解
Apr 08 Javascript
JavaScript中的getMilliseconds()方法使用详解
Jun 10 Javascript
jquery实现的横向二级导航效果代码
Aug 26 Javascript
基于JavaScript Array数组方法(新手必看篇)
Aug 20 Javascript
Vue.js实现无限加载与分页功能开发
Nov 03 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
Jan 09 Javascript
js实现彩色条纹滚动条效果
Mar 15 Javascript
php中and 和 &amp;&amp;出坑指南
Jul 13 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
Aug 12 Javascript
实例讲解JavaScript截取字符串
Nov 30 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
MySQL相关说明
2007/01/15 PHP
微信公众平台开发实现2048游戏的方法
2015/04/15 PHP
CodeIgniter框架常见用法工作总结
2017/03/16 PHP
php往mysql中批量插入数据实例教程
2018/12/12 PHP
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
为你的网站增加亮点的9款jQuery插件推荐
2011/05/03 Javascript
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
Element MessageBox弹框的具体使用
2020/07/27 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
Python pickle模块用法实例
2015/04/14 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
通过实例解析Python调用json模块
2019/12/11 Python
Python字符串的修改方法实例
2019/12/19 Python
python的help函数如何使用
2020/06/11 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
CSS3 3D酷炫立方体变换动画的实现
2019/03/26 HTML / CSS
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
remote接口和home接口主要作用
2013/05/15 面试题
Python使用openpyxl复制整张sheet
2021/03/24 Python
偷看我的初中毕业鉴定
2014/01/29 职场文书
前处理组长岗位职责
2014/03/01 职场文书
学校节能减排方案
2014/06/13 职场文书
2015年预算员工作总结
2015/05/14 职场文书
导游词之江南园林狮子林
2019/09/16 职场文书
排查并解决MySQL生产库内存使用率高的报警
2022/04/11 MySQL