原生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 相关文章推荐
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
node.js中的http.createClient方法使用说明
Dec 15 Javascript
js中对函数设置默认参数值的3种方法
Oct 23 Javascript
JavaScript正则获取地址栏中参数的方法
Mar 02 Javascript
详解如何在vue中使用sass
Jun 21 Javascript
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 Javascript
ECharts地图绘制和钻取简易接口详解
Jul 12 Javascript
js获取 gif 的帧数的代码实例
Sep 10 Javascript
分享Angular http interceptors 拦截器使用(推荐)
Nov 10 Javascript
jQuery实现全选、反选和不选功能的方法详解
Dec 04 jQuery
详解vue中$nextTick和$forceUpdate的用法
Dec 11 Javascript
原生js实现点击轮播切换图片
Feb 11 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
基于mysql的论坛(1)
2006/10/09 PHP
使用php验证复选框有效性的示例
2013/11/13 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
yii2 resetful 授权验证详解
2017/05/18 PHP
PHP实现的XXTEA加密解密算法示例
2018/08/28 PHP
自己动手开发jQuery插件教程
2011/08/25 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
javascript 对象数组根据对象object key的值排序
2015/03/09 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
2016/06/06 Javascript
ionic2 tabs使用 Modal底部tab弹出框
2016/12/30 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
Vue 2.x教程之基础API
2017/03/06 Javascript
webpack中如何使用雪碧图的示例代码
2018/11/11 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
深入解析微信小程序开发中遇到的几个小问题
2020/07/11 Javascript
jQuery实现简单轮播图效果
2020/12/27 jQuery
python常见数制转换实例分析
2015/05/09 Python
python if not in 多条件判断代码
2016/09/21 Python
Scrapy使用的基本流程与实例讲解
2018/10/21 Python
浅谈python中get pass用法
2019/03/19 Python
Numpy数组array和矩阵matrix转换方法
2019/08/05 Python
线程安全及Python中的GIL原理分析
2019/10/29 Python
Python用摘要算法生成token及检验token的示例代码
2020/12/01 Python
Python datetime模块的使用示例
2021/02/02 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
canvas 基础之图像处理的使用
2020/04/10 HTML / CSS
应届毕业生的个人自我鉴定
2013/10/24 职场文书
会计专业自我鉴定
2014/02/10 职场文书
介绍信范文
2015/01/31 职场文书
2015年会计工作总结范文
2015/05/26 职场文书
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python