原生JS实现圣旨卷轴展开效果


Posted in Javascript onMarch 06, 2017

在其他网站看见类似效果,但代码有400多行且看不懂,我用60多行的代码给予实现。

实现原理:(1)利用绝对定位固定好起始位置;(2)利用遮罩将右轴右侧的部分遮住;(3)让右轴和遮罩同时同速度向右运动!

效果图:

原生JS实现圣旨卷轴展开效果

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>诏书</title>
 <style type="text/css">
 * {
  margin: 0;
  padding: 0;
 }
 #animate {
  margin: 40px auto;
  width: 495px;
  height: 150px;
  position: relative;
  overflow: hidden;
 }
 #back {
  width: 495px;
  height: 150px;
  position: absolute;
  left: 0;
  top: 10px;
  background: url(http://cdn.attach.qdfuns.com/notes/pics/201703/04/191654mcfqzdfrxann5551.png) no-repeat;
 }
 #left {
  position: absolute;
  left: 0;
 }
 #right {
  position: absolute;
  left: 16px;
 }
 #mark {
  position: absolute;
  left: 44px;
 }
 </style>
</head>
<body>
<div id="animate">
 <div id="back"><img src="http://cdn.attach.qdfuns.com/notes/pics/201703/04/191214ug6h47d81jyfy6vh.png"/></div>
 <div id="left"><img src="http://cdn.attach.qdfuns.com/notes/pics/201703/04/191236gldigxmxg2zlh9s7.png"/></div>
 <div id="right"><img src="http://cdn.attach.qdfuns.com/notes/pics/201703/04/191244uhavf49l1zw440cv.png"/></div>
 <div id="mark"><img src="http://cdn.attach.qdfuns.com/notes/pics/201703/04/191254kfbz2tjupc1jigbb.png"/></div>
</div>
</body>
<script>
 var animate=document.getElementById("animate");
 var right = document.getElementById("right");
 var mark = document.getElementById("mark");
 var timer = setInterval(function () {
 var right1=getComputedStyle(right).left;
 var mark1=getComputedStyle(mark).left;
 if(parseFloat(right1)>=447){
  right1=447+"px";
  clearInterval(timer);
 }
 right.style.left=(parseFloat(right1)+10)+"px";
 mark.style.left=(parseFloat(mark1)+10)+"px";
 }, 100)
</script>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
很可爱的输入框
Aug 03 Javascript
javascript中[]和{}对象使用介绍
Mar 20 Javascript
js 高效去除数组重复元素示例代码
Dec 19 Javascript
js使用正则实现ReplaceAll全部替换的方法
Jul 18 Javascript
JavaScript iframe数据共享接口实现方法
Jan 06 Javascript
JS简单实现tab切换效果的多窗口显示功能
Sep 07 Javascript
Vue计算属性的学习笔记
Mar 22 Javascript
JavaScript 基础表单验证示例(纯Js实现)
Jul 20 Javascript
基于vue2实现上拉加载功能
Nov 28 Javascript
vue计算属性时v-for处理数组时遇到的一个bug问题
Jan 21 Javascript
React 无状态组件(Stateless Component) 与高阶组件
Aug 14 Javascript
ES6知识点整理之模块化的应用详解
Apr 15 Javascript
js中setTimeout的妙用--防止循环超时
Mar 06 #Javascript
Bootstrap表单简单实现代码
Mar 06 #Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
Mar 06 #Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
Mar 06 #Javascript
Bootstrap显示与隐藏简单实现代码
Mar 06 #Javascript
jQuery时间验证和转换为标准格式的时间格式
Mar 06 #Javascript
Bootstrap导航中表单简单实现代码
Mar 06 #Javascript
You might like
thinkPHP实现瀑布流的方法
2014/11/29 PHP
关于php 高并发解决的一点思路
2017/04/16 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
JavaScript 继承的实现
2009/07/09 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
JS中获取数据库中的值的方法
2013/07/14 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
2015/08/27 Javascript
JavaScript实现斗地主游戏的思路
2016/02/29 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
2016/06/07 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
如何提高数据访问速度
2016/12/26 Javascript
JavaScript实现经典排序算法之插入排序
2016/12/28 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
jQuery获取复选框选中的当前行的某个字段的值
2017/09/15 jQuery
移动端效果之IndexList详解
2017/10/20 Javascript
ES6学习笔记之map、set与数组、对象的对比
2018/03/01 Javascript
vue 微信授权登录解决方案
2018/04/10 Javascript
如何优雅的在一台vps(云主机)上面部署vue+mongodb+express项目
2019/01/20 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
[00:05]ChinaJoy现场 DOTA2玩家高呼“CN DOTA BEST DOTA”
2019/08/04 DOTA
python实现划词翻译
2020/04/23 Python
Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程
2014/11/18 Python
python统计日志ip访问数的方法
2015/07/06 Python
详解Python中的文件操作
2016/08/28 Python
Pandas之groupby( )用法笔记小结
2019/07/23 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
远程Wi-Fi宠物监控相机:Petcube
2017/04/26 全球购物
Zipadee-Zip襁褓过渡毯:Sleeping Baby
2018/12/30 全球购物
护理学毕业生自荐信
2013/10/02 职场文书
高一自我鉴定
2013/12/17 职场文书
投标单位介绍信
2014/01/09 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers