根据滚动事件进行页面动画
根据滚动事件进行页面动画
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><style>body {padding-top: 200px;height: 1000px;}.item {position: relative;left: -50px;top: -50px;width: 100px;height: 100px;display: inline-block;}.item1 {margin-left: 150px;background-color: red;}.item2 {background-color: blue;}.item3 {margin-left: 130px;background-color: aqua;}</style>
</head><body><div id="anim"><div class="item item1" data-end-x=-130 data-end-y=0 data-scale=2 data-ratio=0></div><div class="item item2" data-end-x=130 data-end-y=0></div><div class="item item2" data-end-x="-110" data-end-y="130"></div> <div class="item item3" data-end-x="-120" data-end-y="-110"></div> </div><script>// 父类var anim = document.getElementById('anim')console.log(anim)// 子类var animChild = anim.children// 所有需要动的元素var actList = []// 获取数据for (var i = 0, l = animChild.length; i < l; i++) {var _item = animChild[i]if (_item.dataset) {var _data = _item.dataset_data.scale = _data.scale || 1_data.ratio = _data.ratio || 0actList.push({el: _item,move: _data})}}console.log(actList)// 滚动事件window.onscroll = function () {// 滚动条数据var scrollY = window.scrollY// 遍历需要运动的元素for (var i = 0, l = actList.length; i < l; i++) {// 当前第几个var _item = actList[i]//运动参数var _actMove = { x: 0, y: 0, scale: 1 }//缩放大小var _scale = parseFloat(_item.move.scale)//倍率var _ratio = parseFloat(_item.move.ratio)//X轴var _endX = parseFloat(_item.move.endX)//Y轴var _endY = parseFloat(_item.move.endY)if (_endX < 0) {_actMove.x = 0 - scrollY > _endX ? 0 - scrollY : _endX} else {_actMove.x = scrollY < _endX ? scrollY : _endX}if (_endY < 0) {_actMove.y = 0 - scrollY > _endY ? 0 - scrollY : _endY} else {_actMove.y = scrollY < _endY ? scrollY : _endY}// 如果倍率存在if (_ratio) {if (_scale < 1) {_actMove.scale = 1 - (scrollY * _ratio) < 0 ? 0 : 1 - (scrollY * _ratio)} else if (_scale > 1) {_actMove.scale = 1 + (scrollY * _ratio) > _scale ? _scale : 1 + (scrollY * _ratio)}}// 修改样式_item.el.style.transform = 'translate(' + _actMove.x + 'px,' + _actMove.y + 'px) scale(' + _actMove.scale + ')'}}</script>
</body></html>
效果
根据滚动事件进行页面动画相关推荐
- dom事件对象、解绑事件、事件委托、页面加载、滚动事件、页面尺寸事件
1.e.type获取事件类型,例如click input focus <input type="text"> <script>let input=docum ...
- web前端学习笔记26-事件类型——一般事件、页面事件、表单事件
一.事件类型的分类 事件分为一般事件.页面事件和表单事件 二.一般事件 关键字 释义 关键字 释义 click 单击事件 dblclick 双击事件 mousemove 鼠标移动事件 mouseove ...
- JavaScript基础——滚动事件、加载事件、三大家族
文章目录 一.滚动事件和加载事件 1.1 滚动事件 1.2 加载事件 二.三大家族 2.1 scroll家族 2.2 offset家族 2.3 client家族 一.滚动事件和加载事件 1.1 滚动事 ...
- vue 监听页面滚动事件:触发animate.min.css动画特效
一.问题答疑: 1. animate.css 如何在vue项目中引入?或引用? 2. 如何监听滚动事件,触发animate.class动画播放? vue 监听滚轮滚动事件,for循环 ,动态id,代码 ...
- 综合设计一个OPPE主页--页面的插件引用(animate.css)--d动画的使用--滚轮或鼠标到该位置时,才有动画的切换---所以我们需要用jquery监听鼠标滚轮的滚动事件
Animate.css | A cross-browser library of CSS animations. 里面有许多css的效果 首先使用 animate.css文件 link rel=&qu ...
- vue 组件封装 | s-fullpage 全屏滚动 (内含绑定鼠标滑轮滚动事件、避免鼠标滑轮连续滚动、滑动过渡动画等实用技巧)
目录 目标 实现原理(要点) 完整代码 s-fullpage 和 s-fullpageItem s-fullpage.vue s-fullpageItem.vue 使用范例 范例效果 目标 实现类似插 ...
- waypoint+animate元素滚动监听触发插件实现页面动画效果
最近在做一个官网类型滚动加载动画,使用到waypoint监听事件插件和animate动画样式,两者结合完美实现向下滚动加载动画,但是没有做向上滚动撤消动画,留待以后有空研究 首先来介绍下jquery. ...
- 页面滚动事件和利用JS实现回到顶部效果
页面滚动 事件:window.onscroll, 获得页面滚动位置:document.body.scrollTop: HTML代码: 这里注意此处逻辑,大于500就显示,否则就隐藏,还有注意如果变量名 ...
- 监听页面滚动触发事件,页面停止滚动触发事件
监听页面滚动触发事件,页面停止滚动触发事件 核心代码 data() {return {timer: null,isTipVisible: true} } methods: {handleScrollS ...
最新文章
- 一个TensorFlow的新模型,Kaparthy小哥用了都说好
- docker 外部连接_使用外部网络连接Docker容器
- auto.js停止所有线程_Java多线程编程基础知识 概念介绍,以及线程状态
- 【Codeforces 1096D】Easy Problem
- mysql索引类型 normal, unique, full text
- 解决浏览器跨域加载本地文件报错 Access to script at ‘xxx‘ from origin ‘null‘ has been blocked by CORS policy
- 英特尔 开源降噪库 api_Google的新操作系统,英特尔的开源VR耳机以及更多新闻
- 华为下调2020年印度市场收入目标,或裁员60%至70%
- vue点击改变data_vue 中自定义指令改变data中的值
- 一枝穿云箭,千军万马来相见——致2015届电子科大信软学院新生
- 微博黄v怎么认证?怎么满足条件详解 身份认证|兴趣认证|视频认证
- makefile编写模板
- IC芯片卡读写类(泛型模式)
- 微信小程序高德地图获取当前定位
- CentOS升级pcre
- addon@Node.js之新手上路
- 浅析故障电弧探测器在电气防火中的作用与应用介绍
- 获取浏览器中鼠标选中的文本内容
- 2021这一年 | 用数字技术实现普惠金融
- 环境混合物总体效应:加权分位数和回归(WQS)
热门文章
- KMP算法:最长字符串匹配算法
- 用MaskFilter画抽奖大转盘Demo
- 电脑有什么超简单的录屏方法
- JS获取当前日期并格式化
- Error: Error while compiling statement: FAILED: SemanticException Schema of both sides of union shou
- 【mysql 提高查询效率】​Mysql 数据库查询好慢问题解决
- 浮点数在内存中的存储规则
- 漫话:手机很早就有飞行模式了,为什么最近几年坐飞机才不用关机?
- android嵌入式开发教程
- 远程控制华为服务器,远程虚拟控制台 - 华为服务器 iMana 200 用户指南 25 - 华为...