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

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

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

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

可以简单的认为是相对定位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.营销营销页图片免费下载营销营销页素材营销营销页模板千图网为您找到471817张营销营销页相关素材,千图网还提供营销营销页图片,营销营销页素材, 营销营销页模板等免费下载服务,千图网是国内专业创意营销服务交易平台,一站式解决企业营销数字化、协同化,实现营销转化效果增长!https://www.58pic.com/tupian/yingxiaoyingxiaoye.html
2.营销活动页图片大全营销活动页背景图片我图网为您匹配到营销活动页素材专题,提供大量营销活动页图片,营销活动页图片大全,营销活动页素材在线下载。更多营销活动页图片素材,尽在我图网。我们提供高质量正版图片供您使用,商用版权放心下载。https://www.ooopic.com/subjectinfo-901485/
3.营销单页面单页面营销型网站着陆页天极科技-单页面营销型网站「金牌」制作公司,为企业定制单页面网站、着陆页设计、营销型单页面.从数据分析、策划提炼等方面打造您的单页面营销型网站.https://www.znzxy.cn/dym.html
4.营销页面设计素材网站图片免费下载koraior联合营销页面设计 28 殷木辛 官网系列之推广营销页面设计 106 闻到很真的声音 移动营销页面设计 118 ilyamj 中国护士网课程培训网站营销页面设计 137 元心广告 "年度收益王"营销页面设计 68 龙圣小子 美的&百雀羚315联合营销页面设计 45 燃烧的湖 天猫详情页淘宝详情页设计店铺装修设计代运营策划爆款策划https://www.zcool.com.cn/tag/ZOTQzMzU2.html
5.自建站如何建立营销型SEO网站!目标客户群体定位营销型网站对于用户都是有着精准定位的,一切设计都是从用户的体验度出发,所以在建站过程中,加入企业的文化理念,使用户潜移默化的接受,即使当时没有需求,在以后需要这个产品时会自然而然的想到某某品牌产品。 目标客户定位可以分为多个维度,比如男士、女士、中性、儿童、情侣等不同组合定位,详情见图。https://zhuanlan.zhihu.com/p/550608364
6.营销页名片营销页名片模板可编辑下载营销页名片设计 创客贴拥有海量精美的营销页名片设计模板和营销页名片设计素材,每一个模板都可编辑 文字图片背景皆可修改,简单3步即可完成在线营销页名片设计制作 免费使用 营销页名片图片一键生成 每一张设计模板、图片都可以在线编辑,替换文字就能生成精美设计。 您也可以DIY托拉拽轻松创意设计。下载设计时,会进行版权https://www.chuangkit.com/polymer/155002.html
7.Page,极速创作专业的营销落地页工具(V2.0)新的不只是界面,更是全新极致编辑体验 更多丰富、流行的模板,让你有更多选择 预置更多现代化流行页面模板,让你的营销页专业的同时也不乏颜值, 后续将继续丰富更多模板,满足不同行业客户需求 部分模板展示 更友好的全终端适配体验 无论是大屏或者小屏,每一款模板都可以自动适配不同尺寸的终端,让阅读体验更完美 http://www.m1page.com/s/hpil11
8.爱采购商家后台视频营销② 绑定后系统会自动跳转至视频营销页。 5、完成新手必看 ① 绑定成功后,会进入【新手必看】环节; ② 在该环节内放置《视频营销操作指导》、《视频营销生产标准》《视频营销常见问题》三块内容,均为会员在使用视频营销功能时需要用到的内容,因此需要会员完成学习; https://www.hulian.top/zixun/post/9262.html
9.百度推广营销页怎么做的,百度推广营销页怎么做模板百度推广是指通过百度搜索引擎平台进行广告投放和推广活动,其中包括了制作推广营销页。下面是一些建议来帮助你制作百度推广营销页: 1. 目标明确:确定你的推广目标,例如增加网站访问量、提高销售转化率或品牌知名度等。 2. 页面设计:设计简洁、清晰的页面布局,重点突出主要信息,使用户能够快速了解你的产品或服务。 https://qyyi.cn/news/show-330163.html
10.轻页轻页是一种小而美的H5移动端网页形式,采用响应式设计,适配手机等各种终端。轻页交互性强,运用网络多媒体功能制作成精美网页,全面展示企业信息、实时更新企业动态、全维度展现企业产品、多种的即时联系方式。企业可以进行自发性的转发和定向传播。可以实现随时可营销,随http://www.dongxide.com/
11.爱单页设计制作平台爱单页设计制作平台是一套专业单页制作工具,平台支持制作营销页、落地页、专题页、H5页面开发等服务,可同时支持响应式、电脑端或手机端开发设计并制作页面,平台提供海量单页素材与模板,一键生成源码直接下载使用;http://idanye.com/
12.百度新医疗即将覆盖医美?!要注意的都在这了!医院营销百度新医疗需要在百度商家号里面创建,没有商家号可以通过开通熊掌号再同步开通商家号,上传医院的资质后进行实地核验,核验通过才能创建营销页。 02、提早至少半个月开始录入百度医生信息库 网址:Https://doctor.baidu.com 只有录入百度医生信息库的医生才能进行推广,许多竞价小伙伴们表示,光是和医生解释新医疗,收集资格http://zlwap.hxyjw.com/arc_31118
13.作业三:营销着陆页优劣案例对比分析当然,作为食物类营销页,能激起用户食欲的画面也不能放过,视觉过关! 产品细节图片 产品制作工艺也作了介绍,果然不是小工坊能做出来的,价格可能比同类贵,但是贵在价值所在,包装分装,锁住美味,三只松鼠确实很用心。 品牌和产品都吹了一遍,如果还没有刺激用户下单怎么办? https://www.jianshu.com/p/6ddce9cb9e9f
14.15种app软件营销着陆页模板Shuvon是应用程序和软件多用途营销着陆页模板,用于宣传和销售您的应用程序,采用时尚简洁的设计,使用Bootstrap框架/html5/css3技术精心制作的。主要特色完全响应式设计基于Bootstrap 3.3.615个着陆页360+ 图标使用 HTML5 和 CSS3 构建易于定制干净的设计粘性标题定价表评https://www.bootstrapmb.com/item/13295
15.H5落地页让你的H5页功能齐全、极具个性 拖拽使用 参数自定义程度极高 立即咨询 营销互动工具 助力引流获客 加速客户沉淀 预约、抽奖、投票、答题等 利用社交网络快速裂变 立即咨询 数据分析 提供有力数据支撑 多维度查看、导出数据 帮助商户优化运营策略 立即咨询 获客表单 主动获取客户资源 收集客户数据 为后续营销打下基础 http://www.scwcms.com/index.php/h5.html
16.国际社媒运营,教育建站,智能建站SaaS平台,数字营销服务商# 官网重建 # 精准广告 # 营销页推广 # 社媒营销 # A/B测试 实际效果: 高效精准的多维度数分析,挖掘关键优化因素;转化成本下降不低于30%~60% # 提供行之有效的教育解决方案 # 提升在线教育网站或App中从注册到支付间每个环节的留存与转化率 MatchPages https://www.matchpages.cn/education-solution
17.百度托管页入口在哪?一文带你快速找到入口在互联网时代,企业想要在激烈的市场竞争中脱颖而出,就需要借助各种营销手段。百度托管页作为百度营销平台的一项重要功能,为企业提供了便捷高效的营销解决方案。然而,对于初次接触百度托管页的用户来说,找到正确的入口并不容易。本文将为您 详细介绍百度托管页的入口位置,帮助您快速上手。 http://semka.cn/article/8273.html
18.营销技巧,八步创建高转化率的着陆页面(一)博众互动副总经理熊立健(微博“高原飞熊”)向投稿,介绍了一种创建高转化能力的营销着陆页方法。网销人员可应用于企业网络营销实战中,产生实际效益。 该系列文章分三篇,以下为第一篇。 前言 教育培训行业和医疗健康、婚礼婚纱、家装地产、投资移民、汽车等行业相似,与咱们常见的快消品行业不同,其消费者的购买决策存在https://m.renrendoc.com/paper/212762538.html
19.如何使用WordPress制作落地页wpbakerypahebuilder落地页制作是否要在WordPress网站上创建自定义落地页? 落地页是一个高度优化的营销页面。它帮助企业将网站访问者转化为客户和潜在客户。 在本文中,我们将向您展示如何使用WordPress制作落地页。 下面是我们将在本指南中介绍的内容的简要概述。 目录 什么是落地页? 方法1。使用SeedProd创建WordPress登录页 https://blog.csdn.net/lilihuigz/article/details/118723202
20.h5活动页h5活动页设计制作人人秀是一款专业的h5制作工具,平台提供了丰富的h5活动页,h5活动页设计制作模板,用户只需要根据自己的需要,找到对应的模板,然后针对性的编辑,进行场景化呈现,自由组合,就可以轻松的制作出你需要的活动营销页。 免费制作 h5活动模板 54五四青年节抽奖活动 116 次发布活动 抽奖 更多https://rrx.cn/content-z3vddq
21.销售线索营销目标支持使用基木鱼程序化落地页组投放—全流量上线在搜索广告投放中,销售线索获客场景下,不少广告主已经开始使用基木鱼程序化落地页组。对比固定的推广落地页,基木鱼的程序化落地页组可支持在多个落地页内进行动态优选,针对用户不同的搜索词智能匹配相关性最优、转化效果最好的页面。但当前在搜索广告投放平台-销售线索https://www.12t.cn/detail_ch156_ca8_doc283.html
22.广告落地页设计信息流落地页基木鱼网站以效果为导向,以数据为基石,目前已成功为数家企业解决营销难题,超出客户预期, 星云在线从成立以来,一直致力于为企业提供高转化率的落地页设计服务,是值得您信 赖的合作伙伴! 预约设计 2年 专注技术开发 220家 品牌合作客户 4项 制作细节标注 22个 行业经验积累 https://www.cnxingnet.com/ad_page/
23.网络推广策划书(通用10篇)战略重点:以网络为重点辅以其他相关媒介进行广告宣传、拓展市场,突出企业形象和产品特色,采取差异化的网络营销竞争策略。 2、 整体推广方案 (1)、网站推广方案 ①、站优化 XX美容公司虽已有了自己的站,但存在诸多问题,如焦点图模糊,影响主页形象;内容页排版及文字内容过于简单,影响消费者搜索阅读并不易留下一个好的https://www.ruiwen.com/word/wangluotuiguangchs.html