当前位置: 首页 > news >正文

网站做会员系统国内网站空间购买

网站做会员系统,国内网站空间购买,山西太原今天重大新闻,建设旅游网站的总结FLIP技术可以让我们的动画更加流畅#xff0c;同时也能降低复杂动画的开发难度 名词解释#xff0c;FLIP是几个英文单词的缩写#xff0c;简单介绍一下#xff1a; F#xff1a;Fist —— 一个元素的起始位置 L#xff1a;Last —— 另一个元素的终止位置#xff0c;…FLIP技术可以让我们的动画更加流畅同时也能降低复杂动画的开发难度 名词解释FLIP是几个英文单词的缩写简单介绍一下 FFist —— 一个元素的起始位置 LLast —— 另一个元素的终止位置注意另一个这个词后面会有具体代码的体现 IInvert —— 计算F与L的差异包括位置大小等并将差异用transform属性添加到终止元素上让它回到起始位置也是此项技术的核心 PPlay —— 添加transtion 过渡效果清除Invert阶段添加进来transform播放动画 1、处理一下蒙层的逻辑 我们先把外部简单逻辑处理一下根据效果有一个点击蒙层关闭的操作代码如下 let mask_dom document.getElementsByClassName(mask)[0] let pic_dom document.getElementById(pic) mask_dom.addEventListener(click, (e) {mask_dom.style.display nonepic_dom.innerHTML })需要注意的是关闭的同时我们还要清理承载放大图的div 2、dom比较多使用事件代理 let container_dom document.getElementsByClassName(container)[0] container_dom.addEventListener(click, (e) {//获得点击位置的dom节点 let boxDom e.target //判断点击的是不是模拟图片的dom if(boxDom.className.indexOf(box) -1){return } // 打开蒙层mask_dom.style.display block //克隆被点击的节点let cloneDom boxDom.cloneNode(true) })3、Fist获得起始位置dom的位置信息 //第一步、获得初始位置信息 let firstInfo boxDom.getBoundingClientRect()4、Last获取结束时的位置信息 //第二步、获取结束时的位置信息——添加全局居中样式cloneDom.className cloneDom.className picture-zoom-in //第二步、获取结束时的位置信息——放到容器中pic_dom.appendChild(cloneDom) //第二步、获取结束时的位置信息 let lastInfo cloneDom.getBoundingClientRect()5、Invert计算差异 //第三步、计算变化的数据数据 let invertInfo {x: firstInfo.x - lastInfo.x,y: firstInfo.y - lastInfo.y, } // 第三步、计算变化的数据数据 - 将克隆节点赋值变化的数据 回到初始位置 //特别说明 由于有scale会导致transformOrigin发生变化在修改scale时需要将transformOrigin归零 cloneDom.style.transformOrigin 0 0 cloneDom.style.transform scale(1) translate(calc(-100% ${invertInfo.x}px),calc(-100% ${invertInfo.y}px))6、play播放动画 //第四步、设定过度动画删除第三步的transform setTimeout(() {cloneDom.style.transition all .5scloneDom.style.transformOrigin cloneDom.style.transform }) 下面是全部代码 !DOCTYPE html html langenheadmeta charsetUTF-8meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0titleFLIP-demo/titlestyle.container {display: flex;flex-wrap: wrap;text-align: center;}.box {border:1px solid #ccc;margin-left: 10px;margin-top: 10px;}.box_0{width: 200px;height: 250px;background-color: #ffa39e;color: #000000;line-height:250px;}.box_1 {width: 160px;height: 210px;background-color:#ffd8bf;line-height: 210px;}.box_2 {width: 190px;height: 270px;background-color:#ffd591;line-height:270px;}.box_3 {width: 210px;height: 300px;background-color:#ffe58f;line-height:300px;}.box_4 {height: 160px;width: 210px;background-color:#780650;color:#ffffff;line-height:160px;}.box_5 {height: 190px;width: 270px;background-color:#22075e;color:#ffffff;line-height:190px;}.box_6 {height: 210px;width: 300px;background-color:#061178;color:#ffffff;line-height:210px;}.mask{position: fixed;width: 100%;height: 100%;background: #000000;opacity: 0.7;z-index: 1;display: none;text-align: center;}.picture-zoom-in{position: fixed;z-index: 2;left: 50%;top: 50%;transform: translate(-50% ,-50%) scale(2) ;text-align: center;}/style /headbody!-- 蒙层 --div classmask/div!-- 放大图片的容器 --div idpic/div!-- 图片容器及列表 --div classcontainerdiv classbox box_0200px*250px/divdiv classbox box_0200px*250px/divdiv classbox box_0200px*250px/divdiv classbox box_0200px*250px/divdiv classbox box_1160px*210px/divdiv classbox box_2190px*270px/divdiv classbox box_3210px*300px/divdiv classbox box_4210px*160px/divdiv classbox box_5270px*190px/divdiv classbox box_6300px*210px/div/divscriptlet container_dom document.getElementsByClassName(container)[0]let mask_dom document.getElementsByClassName(mask)[0]let pic_dom document.getElementById(pic)mask_dom.addEventListener(click, (e) {mask_dom.style.display nonepic_dom.innerHTML })//dom 比较多采用事件代理container_dom.addEventListener(click, (e) {//获得点击位置的dom节点let boxDom e.target//判断点击的是不是模拟图片的domif(boxDom.className.indexOf(box) -1){return}// 打开蒙层mask_dom.style.display block//克隆被点击的节点let cloneDom boxDom.cloneNode(true)//第一步、获得初始位置信息let firstInfo boxDom.getBoundingClientRect()//第二步、获取结束时的位置信息——添加全局居中样式cloneDom.className cloneDom.className picture-zoom-in//第二步、获取结束时的位置信息——放到容器中pic_dom.appendChild(cloneDom)//第二步、获取结束时的位置信息let lastInfo cloneDom.getBoundingClientRect()//第三步、计算变化的数据数据 let invertInfo {x: firstInfo.x - lastInfo.x,y: firstInfo.y - lastInfo.y,}// 第三步、计算变化的数据数据 - 将克隆节点赋值变化的数据 回到初始位置 //特别说明 由于有scale会导致transformOrigin发生变化在修改scale时需要将transformOrigin归零cloneDom.style.transformOrigin 0 0cloneDom.style.transform scale(1) translate(calc(-100% ${invertInfo.x}px),calc(-100% ${invertInfo.y}px))//第四步、设定过度动画删除第三步的transformsetTimeout(() {cloneDom.style.transition all .5scloneDom.style.transformOrigin cloneDom.style.transform })})/script /body/html
http://www.zqtcl.cn/news/451457/

相关文章:

  • 海口个人建站模板精品课程云网站建设
  • 阿里网站空间莱芜新闻视频回放
  • 高清网站建设的好处wordpress 房产模板
  • 在建工程查询网站怎么自己开发网站
  • 旧电脑怎么做网站如何自己弄个免费网站
  • 聊城网站营销WordPress工作发布
  • 建造网站需要什么汽车网站建设
  • 网站建设app郑州发布评论
  • 福州网站制作建设网页设计图片是怎么显示的
  • 天津通用网站建设收费网站建设怎么在png上写文字
  • 浏阳做网站报价高校网站站群建设公司
  • 海口网站提升排名网站建设与管理考试题
  • 做网站的算什么行业ui视觉设计常用软件是什么
  • 成都网站建设公司哪家好西安搬家公司哪家便宜
  • 程序员自己做网站怎么能来钱上海猎头公司哪家好
  • 无忧网站建设哪家好手机网站php开发
  • 如何仿制一个网站wordpress+主题课堂
  • 公明做网站渭南网站开发
  • 网站优化排名多少钱查备案网站备案
  • 北京网站建设市场培训机构参与课后服务
  • wordpress如何添加网站地图上海网站开发设计公司
  • 网站设置反爬虫的主要原因深圳外贸公司上班工资高吗
  • 济南建站价格同仁网站建设公司
  • 石家庄建站软件中国纪检监察报怎么订阅
  • 国内建网站费用厦门房地产网站建设
  • 宝山网站制作网站优化待遇
  • 网站建设项目竞争性招标文件界面设计的重要性
  • 网站建设合同机械设备网络推广方案
  • 阿里巴巴做网站的绿色的医疗资讯手机网站wap模板html源码下载
  • 怎么样自己做企业网站dz采集wordpress