前端聊聊苹果营销页中几个有趣的交互动画个人文章

一个是屏幕慢慢打开的效果,在屏幕打开的过程中,电脑图片是在屏幕中固定不动的,直到打开完毕或者关闭完毕的时候再让电脑图片随着滚动条滚动。

开始时是一张全屏的图片,在滚动过程中慢慢变成另一张图片,接着这张图片以屏幕正中间为基准点慢慢缩小,在缩小的过程中,这张图是定在屏幕中央的,缩小到一定值的时候,图片随着滚动条滚动。

再动手写代码之前,我们需要了解几个在接下来代码中要用到的知识点。

可以简单的认为是相对定位relative和固定定位fixed的混合,元素在跨越指定范围前为相对定位,之后为固定定位。

sticky元素固定的相对偏移是相对于离它最近的具有滚动框的祖先元素,如果祖先元素都不可以滚动,那么是相对于viewport来计算元素的偏移量。

如下代码,html结构如下:

我是sticky的第一个demo

...

...

//...
样式如下:

nav{display:table;width:100%;position:sticky;top:0;}在代码中nav元素会根据body进行粘性定位,在viewport视口滚动到元素top距离小于0px之前,元素为相对定位,也就是说他会随着文档滚动。之后,元素将固定在与顶部距离0px的位置。

其中

//...其中动态引入图片我们可以通过require(图片路径)来完成,如上面的代码,我们只需要计算出对应滚动距离所需要展示的图片名字即可。样式代码.stickyContainer{height:150vh;}.stickyWrapper{height:100vh;position:sticky;top:100px;}.imgWrapper{width:100vh;height:521px;margin:0auto;}.imgWrapperimg{width:100%;}接着就是在滚动的过程中计算出当先需要显示的图片是那一张,我们上面提到:120张图片,在400px的滚动距离中完成动画。

首先我们再加载完成后可以得出,我们可以得出开始动画的距离文档顶部的滚动值startOpen,因此我们可以得出如下代码:

useEffect(()=>{//绑定事件window.addEventListener('scroll',scrollEvent,false);//开始动画的滚动距离//startOpenstartOpen=$('#imgWrapper').offset().top-(window.innerHeight/2-$('#imgWrapper').height()/2);return()=>{window.removeEventListener('scroll',scrollEvent,false);}},[]);//滚动事件constscrollEvent=()=>{//实时的scrollTopconstscrollTop=$('html').scrollTop();letnewAsset=''if(scrollTop>startOpen&&scrollTop120){offset=120;}if(offset<10){newAsset=`large_000${offset}`;}elseif(offset<100){newAsset=`large_00${offset}`;}else{newAsset=`large_0${offset}`;}}//边界值判断//....//设置图片urlsetAsset(newAsset);};预览效果

缩放图片到屏幕这个动画我们可以用两个方式实现,一个是滚动视差实现,一个是canvas在滚动过程中实时渲染图片。

开始之前我们来看一下没有放大的之前图,如下:

它由两张图片组成,屏幕中显示的图片,他与电脑外壳的上间距是18px,当放大了之后,图片与电脑外壳图片的上边距应该是18*放大比率。

电脑外壳图片,如下:

接下来我们就开始介绍两种实现方式。

Canvas实现是将屏幕中显示的这张图片由Canvas来画。

其实这个动画有两部分组成,一个是图片覆盖,一个是图片缩小。

使用Canvas来解决,使用Canvas实现我们需要使用drawImage方法将两张图片画到一张画布上。只需要通过滚动的距离,对应计算出具体某个时候画布应该画多少比例的第一张图,画多少比例的第二张图,就可以解决了。只需要知道什么时候开始图片覆盖。

我们使用transform:matrix来实现,其中图片缩小是基于屏幕正中央的点进行缩放的。

我们根据滚动的距离相应的计算出相应放大比率和translate的值,如下图,实时改变transform:matrix的参数值就行了。

这里我们需要计算出几个临界点的值,比如最大/小的放大比率,最大/小偏移值,开始缩小的点等。

这里我们需要知道几个值:

//canvas显示的图片宽度constCANVAS_WIDTH=544;//canvas显示的图片高度constCANVAS_HEIGHT=341;//动画持续的距离constZOOM_SCROLL_RANGE=400;//canvas显示的图片实际宽度constIMG_NATURAL_WIDTH=2048;//canvas显示的图片实际高度constIMG_NATURAL_HEIGHT=1024;最小的放大比率为1,即是自身。

最大的放大比率是屏幕的高度除以屏幕显示图片的比率,这里笔者将canvas画出来的图片宽高定位544*341。

constCANVAS_WIDTH=544;constCANVAS_HEIGHT=341;constscaleRadio=window.innerHeight/CANVAS_HEIGHT;所以放大比率的区间应该是1~scaleRadio之间。最大的偏移距离,应该是当curScale为1的时候,包裹元素距离视口顶部的距离,我们的缩放一直都是基于屏幕正中央这个点来进行放大/缩小的,所以可以很简单的得出:

//最大的translateletStartScale=0;StartScale=window.innerHeight/2-$('#img-wrapper').height()/2;最小的偏移距离,应该是在curScale为scaleRadio时,包裹元素距离视口顶部的距离,这个时候,我们就需要用到之前提到的视屏图片到电脑外壳的top=18px这个值了,因为图片进行了放大,所以最小的偏移距离应该为:

miniTranslate=-18*scaleRadio所以偏移距离的区间应该是miniTranslate~StartScale之间。其实很简单我们需要在第二章图片完全覆盖掉第一张的图片的时候就进行开始缩放,这个值可以通过Canvas包裹元素距离顶部文档的top值加上一屏的高度就能计算出。

letNewStartScale=0;NewStartScale=$('#section-sticky-hero').offset().top+window.innerHeight;核心代码核心代码就是滚动时候的计算:

//...其他内容

//...其他内容篇幅有限,笔者只列举了滚动事件的代码和html结构,其他的代码,比如drawImage这个方法,大家有兴趣的话,可以参考源码。预览效果图

前面我们也讲了滚动视差的原理,有了这个background-attachment:fixed属性,第二个动画基本上已经实现一半了。

和上面的canvas画图相比的话,其实就是图片覆盖的这一步不一样,其他基本上都是类似的,包括边界值的计算。

这里我们需要将两张图片都设置为背景图片,同时我们需要给第二张图片套上电脑外壳图片。

当第一张图片充满屏幕的时候,就给两张图片同时加上background-attachment:fixed属性,不能一开始的时候就加上这个属性,不然就会变成下面这个效果:

这里我们不使用transform:matrix来做这个放大缩小,我们使用background-position和background-size来进行图片的缩小/放大和偏移。

滚动逻辑代码如下:

//...其他内容IMG1IMG2//...其他内容

THE END
1.建行营销专题模板建行营销图片素材下载我图网建行 营销专题为您整理了60044个原创高质量建行 营销图片素材供您在线下载,PSD/JPG/PNG格式建行 营销模板下载、高清建行 营销图片大全等,下载图片素材就上我图网。https://so.ooopic.com/sousuo/20621741/
2.营销营销页图片免费下载营销营销页素材营销营销页模板千图网为您找到587710张营销营销页相关素材,千图网还提供营销营销页图片,营销营销页素材, 营销营销页模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/yingxiaoyingxiaoye.html
3.营销图片免费下载营销素材营销海报红色主图营销框 商务笔记本和灯炮 下载PNG 市场销售联络方式矢量图 销售的产品图标 下载PNG 新媒体市场宣传 下载PNG 电话销售 下载PNG 呼叫服务图标 电话营销 下载PNG 我图标 鸟蓝色标志营销媒体网络在线社会图标 对话框营销插画矢量图 红包派送活动 秋冬酷炫潮流女装T恤连衣裙促销 https://ixintu.com/all/yingxiao.html
4.营销页面素材网站图片免费下载营销页面,站酷提供丰富的图片素材,品牌设计,UI交互,动漫游戏,影视摄像等正版素材,站酷是设计师、摄影师、插画师、艺术家、创意人,设计创意首选中国设计师互动平台。https://www.zcool.com.cn/tag/ZMjE1NzUy.html
5.营销背景营销背景图片营销背景素材第3页觅知网为您找到1868个原创营销背景设计图片,包括营销背景图片,营销背景素材,营销背景海报,营销背景,营销背景模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于营销背景素材、图片、海报、背景、插画、配图、矢量、UI、PS、免抠,模板、艺术字、PPThttps://www.51miz.com/so-sucai/1900070/p_3/
6.销售宣传海报图片销售宣传海报设计素材花瓣网为您精选销售宣传海报设计灵感图,海量高清销售宣传海报图片素材大全,一键收藏下载。 售楼宣传海报内销宣传海报营销宣传海报售书宣传海报促销宣传海报宣传海报销售海报宣传部海报藕宣传海报宣传栏海报宣传照海报宣传单海报销售节海报防传销海报宣传板海报宣传海报画宣传画海报党宣传海报茶宣传海报鞋宣传海报宣传书海报销售https://m.huaban.com/zhuanti/haibao-40928
7.营销背景素材营销背景图片元素觅元素是设计素材的免费下载网站,提供营销背景素材,营销背景图片,营销背景免抠素材设计元素,营销背景png图片透明背景等素材免费下载。https://www.51yuansu.com/tupian/yingxiaobeijing.html
8.网站怎么更换页面图片/营销计划网站怎么更换页面图片,营销计划,河北二级建造师考试最新消息,做网站建设跑业务,网站建设jwzcq,如何做网站充值VirtualBox虚拟机中安装CentOS 7 https://blog.csdn.net/MaxWoods/article/details/77189662 VirtualBox虚拟机中安装CentOS 7 https://blog.csdn.net/MaxWoods/article/details/77189662http://www.flsr.cn/news/787987.html
9.网页营销素材图片网页营销素材图片大全智能精选为您提供丰富的网页营销素材图片素材,网页营销素材配图,网页营销素材插图,网页营销素材图片素材下载。助力您对于网页营销素材配图插图的创意设计灵感,充实饱满作品,查找更多配图插图作品选择摄图网下载https://m.699pic.com/image/wangyeyingxiaosucai.html
10.Chromium内核html2jpg截取手机端网页,pad上的页面为图片【原创】舆情监测、执行证据、设计营销必备 WebShot微长文章批量转换提取网页内图片保存png谷歌Chrome Chromium内核html2jpg 截取手机端网页,pad上的页面为图片 【原创】WebShot微长文章批量转换提取网页内图片保存png谷歌Chrome Chromium内核html2jpg 全自动将完整的整个网页保存为完整的图片,支持批量哦,谷歌内核的。https://www.cnblogs.com/uicool/p/14691610.html
11.营销微信网站页面网页UI素材免费下载(图片编号:5496008)六图网提供精美好看的网页UI素材模板下载,本次网页UI作品主题是营销 微信 网站 页面,编号是5496008,格式是PSD,该营销 微信 网站 页面素材大小是1.38 MB。营销 微信 网站 页面是由网页UI设计师◣違吢綪話◢上传. 浏览本次作品的您可能还对营销,微信,网站,页面感兴趣。https://www.16pic.com/web/pic_5496008.html
12.网络营销策划方案15篇根据企业营销的目标和市场环境变化,分析营销活动的主题和方案。主要内容包括:关键词分析、搜索引擎登录分析、链接相关性分析、目标市场分析、用户分析、产品分析、营销页面分析、营销渠道分析、后续产品和服务分析和价格分析等。 (四)网站优化分析 网站优化分析,实际上很多企业网站,甚至一些电子商务网站都不具备良好的搜索引https://www.ruiwen.com/gongwen/fangan/1296556.html
13.移动端h5页面生成图片,营销推广的优势因此,越来越多的企业开始采用H5小游戏作为营销推广的手段,以吸引潜在客户,并增加品牌影响力。 瑞蚁平台致力于为企业用户提供多元、易用的服务,所包含的业务主要有网站建站、移动开发、营销推广、设计服务、企业管理软件、移动端h5页面生成图片等。https://www.ruiyi126.com/ryzixun/884755.jhtml
14.小程序主商城介绍·微信小程序商城使用教程(定期更新)·看云(7) 支持添加图片上传(自定义编辑名称),可设置必填或选填。 页面管理 (1) 支持查看获取小程序页面路径、二维码(基础页面、营销页面、插件页面、订单页面、DIY页面); (2) 支持页面标题自定义编辑。 版权设置 支持自定义设置小程序底部版权文字、图标、链接 https://www.kancloud.cn/lj419412084/qhv4/1757499
15.在百度搜索结果页面中,图片如何提高显示几率我们都知道如果在百度搜索结果页面中,出现图片,能大大提高点击率。那么,有什么方法能提高图片出现的几率呢? 一、通过站长平台主动提交的网站LOGO图片 1、内容优质度不高的站点禁用提交的网站LOGO 百度站长平台为了提高网站内容的质量,对优质度不高站点已将权限禁用提交的网站LOGO,对优质网站保留提交官网LOGO权限。如下图https://9ge.cn/news/wangluo/148.html
16.营销活动最新总结(精选18篇)在页面规范中,我们将持续规范礼貌用语,为公司树立良好的企业形象,另外将全新投入对于车友活动、售后服务的宣传,呈现出网上立体“4S”,并对参与活动、享受服务的客户,将指导各经营单位网络营销专员,引导客户在网络上以提车作业、售后保养作业的信息发布在汽车论坛上。结合传统媒体广告,打造网络营销宣传立体化,扩大相关客户https://www.yjbys.com/zongjie/huodong/1298680.html
17.门店日常运营内容(店铺运营每天要做的8件事)如果报名活动,需要准备好款式的营销优惠,款式的推广费用 3. 查看活动设置情况: 查看活动的报名设置情况,避免出错 4. 活动分析: 活动后需要统计数据,然后做活动复盘 六、 页面管理 1. 查看店铺首页版面排版: 每天对首页版面的排版进行查看,查看是否有明显的排版错误,图片尺寸变形,图片显示不出,KV聚点图滚动是否正常https://www.niaogebiji.com/article-637999-1.html
18.人人秀在线设计和营销工具——H5页面制作/电子邀请函模板/海报人人秀提供海量的模板,可以快速创建和分享海报、H5页面、问卷、文章、长页、互动、应用、画册、小游戏、抽奖、答题等多种在线营销素材,满足个人、团队、企业的各种营销活动需求https://rrx.cn/
19.?店小秘帮助中心添加后,买家页面访问,图片显示可参考:http://help.dianxiaomi.com/pre/getContent.htm?id=1102 营销图:1、图片格式只能为jpg、jpeg、png,且大小不超过3M 2、长图要求:像素不低于750×1000,方图要求,像素不低于330×330 3、6合1发布不支持设置营销图 批量加水印: 可给图片批量加水印,具体操作请查看 水印管理 https://help.dianxiaomi.com/help/getRefreshContent.htm?id=1452
20.亚马逊日本站怎么翻新店铺?如何操作?随着亚马逊日本站的快速发展,店铺翻新已经成为卖家不可或缺的一项策略。通过研究市场和竞争对手、优化商品信息和图片、改进产品页面布局、提升客户体验以及制定营销策略,你可以在亚马逊日本站上打造一个优秀的店铺。希望这些操作建议对于想要翻新亚马逊日本站店铺的卖家们有所帮助,祝愿你在亚马逊日本站取得成功!https://www.maijia.com/article/572409
21.叶子邀请函叶子邀请函网提供包含微场景制作,微信h5页面,电子邀请函,h5页面制作工具,微信场景制作,微信请柬、海报模板,相册设计,H5素材,邀请函模板,电子请柬模板、节日祝福贺卡制作等高效简洁的H5模板设计和优质的服务、邀请函范文和各类资讯,海量高端大气的h5邀请函模板(结婚、乔迁https://yzsc.gaotutu.com/
22.WordPress网站必备最佳WordPress插件推荐清单与其安装多个插件,你可以将你所有的营销工具集中到一个工具中。这意味着不用担心更新多个插件,降低你的网站速度,以及确保应用程序之间的连接。此外,由于一切都在一个系统中,所以很容易获得更多关于谁在访问你的网站的洞察力。看着您的联系人记录在统一的时间轴上更新,包括联系人的页面浏览、即时聊天对话、表单提交等等https://www.wbolt.com/must-have-plugins-for-wordpress.html