原生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 相关文章推荐
Web版彷 Visual Studio 2003 颜色选择器
Jan 09 Javascript
js+css在交互上的应用
Jul 18 Javascript
AngularJS数据源的多种获取方式汇总
Feb 02 Javascript
Javascript中的 “&amp;” 和 “|” 详解
Feb 02 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
Jun 23 Javascript
10行原生JS实现文字无缝滚动(超简单)
Jan 02 Javascript
Vue实现todolist删除功能
Jun 26 Javascript
详解操作虚拟dom模拟react视图渲染
Jul 25 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
Aug 13 Javascript
vue实现自定义日期组件功能的实例代码
Nov 06 Javascript
微信小程序利用swiper+css实现购物车商品删除功能
Mar 06 Javascript
Vue如何实现变量表达式选择器
Feb 18 Vue.js
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的左右值无限分类
2013/06/20 PHP
mac下安装nginx和php
2013/11/04 PHP
PHP生成唯一订单号
2015/07/05 PHP
Yii框架引入coreseek分页功能示例
2019/02/08 PHP
PHP扩展Swoole实现实时异步任务队列示例
2019/04/13 PHP
php项目中类的自动加载实例讲解
2019/09/12 PHP
javascript 函数速查表
2010/02/07 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
Vue单文件组件的如何使用方式介绍
2017/07/28 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
jQuery实现雪花飘落效果
2020/08/02 jQuery
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python模仿POST提交HTTP数据及使用Cookie值的方法
2014/11/10 Python
python删除特定文件的方法
2015/07/30 Python
详解python进行mp3格式判断
2016/12/23 Python
Python中异常重试的解决方案详解
2017/05/05 Python
python监控键盘输入实例代码
2018/02/09 Python
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
python tkinter实现屏保程序
2019/07/30 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
基于python实现把图片转换成素描
2019/11/13 Python
python如何通过闭包实现计算器的功能
2020/02/22 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
Python与C/C++的相互调用案例
2021/03/04 Python
英国专业美容产品在线:Mylee(从指甲到脱毛)
2020/07/06 全球购物
如何进行Linux分区优化
2013/02/12 面试题
一份创业计划书范文
2014/02/08 职场文书
员工工作自我评价
2014/09/26 职场文书
倡议书作文
2015/01/19 职场文书
使用goaccess分析nginx日志的详细方法
2021/07/09 Servers
IIS服务器中设置HTTP重定向访问HTTPS
2022/04/29 Servers
Nginx安装配置详解
2022/06/25 Servers