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的图片大小自动适应实现代码
Nov 17 Javascript
js或jquery实现页面打印可局部打印
Mar 27 Javascript
jquery实现页面关键词高亮显示的方法
Mar 12 Javascript
JavaScript 模块化编程(笔记)
Apr 08 Javascript
详解jQuery中的事件
Dec 14 Javascript
关于AngularJs数据的本地存储详解
Jan 20 Javascript
JS之if语句对接事件动作逻辑(详解)
Jun 28 Javascript
require.js中的define函数详解
Jul 10 Javascript
Vue计算属性的使用
Aug 04 Javascript
vue中的router-view组件的使用教程
Oct 23 Javascript
Node.js 使用axios读写influxDB的方法示例
Oct 26 Javascript
详解Vue前端对axios的封装和使用
Apr 01 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使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
PHP常用的三种设计模式
2017/02/17 PHP
JavaScript模拟深蓝vs卡斯帕罗夫的国际象棋对局示例
2015/04/22 Javascript
js+html5获取用户地理位置信息并在Google地图上显示的方法
2015/06/05 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
JavaScript学习笔记之数组随机排序
2016/03/23 Javascript
AngularJS表格详解及示例代码
2016/08/17 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
微信小程序自定义导航隐藏和显示功能
2017/06/13 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
使用JavaScript进行表单校验功能
2017/08/01 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
VUEX-action可以修改state吗
2019/11/19 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
2020/02/27 Javascript
javascript操作向表格中动态加载数据
2020/08/27 Javascript
JavaScript中EventBus实现对象之间通信
2020/10/18 Javascript
python打开文件并获取文件相关属性的方法
2015/04/23 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
python得到windows自启动列表的方法
2018/10/14 Python
Python 编程速成(推荐)
2019/04/15 Python
Python 的字典(Dict)是如何存储的
2019/07/05 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
python 有效的括号的实现代码示例
2019/11/11 Python
python中pdb模块实例用法
2021/01/15 Python
EJB3.1都有哪些改进
2012/11/17 面试题
中学生校园广播稿
2014/01/16 职场文书
班主任工作经验材料
2014/02/02 职场文书
公司股东合作协议书
2014/09/14 职场文书
幼儿园辞职书
2015/02/26 职场文书
总账会计岗位职责
2015/04/02 职场文书
培训心得体会怎么写
2016/01/25 职场文书
MySQL创建管理子分区
2022/04/13 MySQL
javascript中Set、Map、WeakSet、WeakMap区别
2022/12/24 Javascript