原生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 相关文章推荐
解析arp病毒背后利用的Javascript技术附解密方法
Aug 06 Javascript
javascript实现div的显示和隐藏的小例子
Jun 25 Javascript
上传图片js判断图片尺寸和格式兼容IE
Sep 01 Javascript
获取JS中网页各种高宽与位置的方法总结
Jul 27 Javascript
ES6教程之for循环和Map,Set用法分析
Apr 10 Javascript
React Native中NavigatorIOS组件的简单使用详解
Jan 27 Javascript
JavaScript显式数据类型转换详解
Mar 18 Javascript
vue实现的上拉加载更多数据/分页功能示例
May 25 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
vue 实现超长文本截取,悬浮框提示
Jul 29 Javascript
PHP读取远程txt文档到数组并实现遍历
Aug 25 Javascript
JS跨浏览器解析XML应用过程详解
Oct 16 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
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
解析百度搜索结果link?url=参数分析 (全)
2012/10/09 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
通过 Dom 方法提高 innerHTML 性能
2008/03/26 Javascript
Javascript 静态页面实现随机显示广告的办法
2010/11/17 Javascript
jQuery 常见操作实现方式和常用函数方法总结
2011/05/06 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
2015/03/31 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
JavaScript必知必会(五) eval 的使用
2016/06/08 Javascript
使用jQuery给input标签设置默认值
2016/06/20 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
vue实现单选和多选功能
2017/08/11 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
详解ES6 Promise对象then方法链式调用
2018/10/20 Javascript
vue+express+jwt持久化登录的方法
2019/06/14 Javascript
JQuery使用数组遍历跳出each循环
2020/09/01 jQuery
Python群发邮件实例代码
2014/01/03 Python
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
优秀应届生推荐信
2013/11/09 职场文书
公积金转移接收函
2014/01/11 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
大学生个人自荐信样本
2014/03/02 职场文书
企业业务员岗位职责
2014/03/14 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记