用原生JS可以做百叶窗效果吗,代码如何写
Admin 2022-06-23 群英技术资讯 822 次浏览
这篇文章给大家分享的是用原生JS可以做百叶窗效果吗,代码如何写。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。本文分享一个用原生JS实现的百叶窗特效,效果如下:

代码实现如下,欢迎大家复制粘贴。
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>原生JS实现百叶窗特效</title>
<style>
* {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
a {
text-decoration: none;
}
#box {
width: 562px;
padding: 10px 24px 20px;
background: #EACFCF;
overflow: hidden;
margin: 20px auto 0;
}
.left {
width: 266px;
float: left;
}
.right {
width: 266px;
float: right;
}
#box h2 {
height: 38px;
border-bottom: 1px solid #D2A1A1;
padding-left: 20px;
}
#box h2 strong {
float: left;
line-height: 38px;
color: #885050;
font-weight: normal;
}
#box h2 a {
float: right;
width: 52px;
height: 14px;
font-size: 12px;
text-indent: 10px;
color: #fff;
line-height: 12px;
font-weight: normal;
margin-top: 10px;
}
#box li {
height: 30px;
position: relative;
border-bottom: 1px dashed #D1A1A1;
}
#box li div,
#box li p {
height: 30px;
position: absolute;
top: 0;
left: 0;
width: 100%;
}
#box li p {
background: #fff;
opacity: 0;
filter: alpha(opacity=0);
}
#box li div a,
#box li div span {
line-height: 30px;
font-size: 12px;
height: 30px;
}
#box li div a {
float: left;
padding-left: 20px;
color: #7F5454;
width: 172px;
overflow: hidden;
}
#box li div span {
padding-right: 10px;
float: right;
color: #CF9494;
}
</style>
<script type="text/javascript">
window.onload = function () {
var oBox = document.getElementById("box");
var aLi = document.getElementsByTagName('li');
var i = 0;
for (i = 0; i < aLi.length; i++) {
var oP = aLi[i].getElementsByTagName('p')[0];
oP.iAlpha = 0;
oP.time = null;
aLi[i].onmouseover = function () {
var oP = this.getElementsByTagName('p')[0];
oP.time ? clearInterval(oP.time) : "";
oP.style.opacity = 1;
oP.style.filter = "alpha(opacity=100)";
oP.iAlpha = 100;
}
aLi[i].onmouseout = function () {
starmove(this.getElementsByTagName('p')[0]);
};
}
};
function starmove(obj) {
obj.time ? clearInterval(obj.time) : "";
obj.time = setInterval(function () { domove(obj); }, 14);
}
function domove(obj) {
var iSpeed = 5;
if (obj.iAlpha <= iSpeed) {
clearInterval(obj.time);
obj.iAlpha = 0;
obj.time = null;
} else {
obj.iAlpha -= iSpeed;
}
obj.style.opacity = obj.iAlpha / 100;
obj.style.filter = "alpha(opacity=" + obj.iAlpha + ")";
}
</script>
</head>
<body>
<div id="box">
<div class="left">
<h2>
<strong>最新消息</strong>
<a>more</a>
</h2>
<ul>
<li>
<p></p>
<div>
<a>课程常见问题合集</a>
<span>20110329</span>
</div>
</li>
<li>
<p></p>
<div>
<a>JS课程结课标准</a>
<span>20110327</span>
</div>
</li>
<li>
<p></p>
<div>
<a>网页特效大集合(每天更新)</a>
<span>20110322</span>
</div>
</li>
<li>
<p></p>
<div>
<a>上课地点</a>
<span>20110319</span>
</div>
</li>
<li>
<p></p>
<div>
<a>CSS课程最新开班时间</a>
<span>20110319</span>
</div>
</li>
<li>
<p></p>
<div>
<a>JavaScript课程最新开班时间</a>
<span>20110319</span>
</div>
</li>
<li>
<p></p>
<div>
<a>零基础网页制作课程</a>
<span>20110319</span>
</div>
</li>
</ul>
</div>
<div class="right">
<h2>
<strong>新鲜事</strong>
<a>more</a>
</h2>
<ul>
<li>
<p></p>
<div>
<a>JavaScript实现的3D球面标签云效果</a>
<span>20110329</span>
</div>
</li>
<li>
<p></p>
<div>
<a>周六JavaScript聚会活动现场记录</a>
<span>20110327</span>
</div>
</li>
<li>
<p></p>
<div>
<a>阿里前端面试题</a>
<span>20110319</span>
</div>
</li>
<li>
<p></p>
<div>
<a>浅析google地图前端实现原理(一)</a>
<span>20110319</span>
</div>
</li>
<li>
<p></p>
<div>
<a>Windows计算器(简易版)作业练习</a>
<span>20110319</span>
</div>
</li>
<li>
<p></p>
<div>
<a>手风琴缓动效果</a>
<span>20110319</span>
</div>
</li>
<li>
<p></p>
<div>
<a>JavaScript实现的3D球面标签云效果</a>
<span>20110319</span>
</div>
</li>
</ul>
</div>
</div>
</body>
</html>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了万字详解JavaScript手写一个Promise,Promise就是一个类,在执行这个类的时候,需要传递一个执行器(回调函数)进去,执行器会立即执行
这篇文章给大家分享的是用JavaScript怎样求对数的方法,文中给大家分享了四种方法,并不难理解,还有示例供大家参考,有需要的朋友可以看看,对大家学习JavaScript会有一定的帮助,接下来就跟随小编一起学习一下吧。
这篇文章主要介绍了利用JS创建一个录屏功能,创建这个功能钱我们首先创建一个HTML文件,包含记录按钮和一个播放标签,下面来看看创建的详细过程
VUE中的proxy和defineproperty有何区别?proxy和defineproperty的区别有:Proxy可以劫持的数组的改变,defineProperty 需要变异、Proxy代理可以劫持对象的改变,defineProperty需要遍历、Proxy代理可以劫持对象属性的添加,defineProperty用this.$set来实现等等,下面我们详细的了解看看。
这篇文章给大家分享的是vue中嵌入外部网站的方法。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008