原生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 相关文章推荐
JavaScript 大数据相加的问题
Aug 03 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
一个非常全面的javascript URL解析函数和分段URL解析方法
Apr 12 Javascript
Express.JS使用详解
Jul 17 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
Apr 24 Javascript
jquery+CSS3实现3D拖拽相册效果
Jul 18 Javascript
javascript轮播图算法
Oct 21 Javascript
微信小程序实现图片压缩功能
Jan 26 Javascript
JS尾递归的实现方法及代码优化技巧
Jan 19 Javascript
Vue中实现回车键切换焦点的方法
Feb 19 Javascript
Electron整合React使用搭建开发环境的步骤详解
Jun 07 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
php巧获服务器端信息
2006/12/06 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
Prototype使用指南之range.js
2007/01/10 Javascript
脚本安需导入(装载)的三种模式的对比
2007/06/24 Javascript
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
获取网站跟路径的javascript代码(站点及虚拟目录)
2009/10/20 Javascript
EditPlus注册码生成器(js代码实现)
2013/03/25 Javascript
JS实现自动定时切换的简洁网页选项卡效果
2015/10/13 Javascript
创建自己的jquery表格插件
2015/11/25 Javascript
多个js毫秒倒计时同时进行效果
2016/01/05 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
AngularJs Injecting Services Into Controllers详解
2016/09/02 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
js动态获取时间的方法分析
2019/08/02 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
Python实现动态添加类的属性或成员函数的解决方法
2014/07/16 Python
初学python的操作难点总结(新手必看篇)
2017/08/03 Python
Python 普通最小二乘法(OLS)进行多项式拟合的方法
2018/12/29 Python
Django时区详解
2019/07/24 Python
面向对象学习之pygame坦克大战
2019/09/11 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
Anaconda3中的Jupyter notebook添加目录插件的实现
2020/05/18 Python
python 实现逻辑回归
2020/12/30 Python
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
美国购买隐形眼镜网站:Lenses For Less
2020/07/05 全球购物
广告学毕业生求职信
2014/01/30 职场文书
基层党员干部四风问题整改方向和措施
2014/09/25 职场文书
2014小学教师个人工作总结
2014/11/10 职场文书
2014年政教处工作总结
2014/12/20 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
2019年度开业庆典祝福语大全!
2019/07/05 职场文书
SQL实现LeetCode(196.删除重复邮箱)
2021/08/07 MySQL
鸿蒙3.0体验感怎么样? 鸿蒙3.0系统评测向
2022/08/14 数码科技