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 相关文章推荐
jQuery的实现原理的模拟代码 -3 事件处理
Aug 03 Javascript
jQuery实战之仿淘宝商城左侧导航效果
Apr 12 Javascript
javascript五图轮播切换实用版
Aug 17 Javascript
JQuery实现网页右侧随动广告特效
Jan 17 Javascript
JSON 数据格式详解
Sep 13 Javascript
Vue-cli 使用json server在本地模拟请求数据的示例代码
Nov 02 Javascript
JavaScript中EventLoop介绍
Jan 22 Javascript
WebSocket的通信过程与实现方法详解
Apr 29 Javascript
详解javascript appendChild()的完整功能
Aug 18 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
Apr 22 Javascript
在vue中把含有html标签转为html渲染页面的实例
Oct 28 Javascript
vue实现lodop打印功能的示例
Nov 11 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中使用session防止用户非法登录后台的方法
2015/01/27 PHP
33道php常见面试题及答案
2015/07/06 PHP
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
input按钮的事件处理大全
2010/12/10 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
2011/03/20 Javascript
动态加载JS文件的三种方法
2013/11/08 Javascript
js 走马灯简单实例
2013/11/21 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
理解javascript回调函数
2014/12/28 Javascript
jQuery EasyUI提交表单验证
2016/07/19 Javascript
Angularjs中$http以post请求通过消息体传递参数的实现方法
2016/08/05 Javascript
前端框架Vue.js构建大型应用浅析
2016/09/12 Javascript
详解微信小程序 wx.uploadFile 的编码坑
2017/01/23 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
微信小程序定义和调用全局变量globalData的实现
2019/11/01 Javascript
Vue中rem与postcss-pxtorem的应用详解
2019/11/20 Javascript
JavaScript 防盗链的原理以及破解方法
2020/12/29 Javascript
Python将DataFrame的某一列作为index的方法
2018/04/08 Python
Python设计模式之代理模式实例详解
2019/01/19 Python
python内存监控工具memory_profiler和guppy的用法详解
2019/07/29 Python
图解python全局变量与局部变量相关知识
2019/11/02 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
Python调用百度OCR实现图片文字识别的示例代码
2020/07/17 Python
中国医药集团国药在线:国药网
2017/02/06 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
教师评优事迹材料
2014/01/10 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
创先争优一句话承诺
2014/05/29 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
机关干部四风问题自查报告及整改措施
2014/10/26 职场文书
小学生节水倡议书
2015/04/29 职场文书
2016年师德师风学习心得体会
2016/01/12 职场文书