用JS写的百叶窗

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style>
*{margin:0;padding:0;list-style:none;}
body{background:url(img/bg.gif) repeat top left;}
#box{width:600px;height:400px;margin:50px auto; border:20px solid #fff; overflow:hidden; position:relative;}
#box ul li{ opacity:0; width:600px; height:400px; position:absolute; top:0; left:0;}
#box ul li span{ width:150px; height:400px; float:left;}
#box ul .active{ opacity:1;}
#box ol{width:100%; height:34px; position:absolute; bottom:20px;}
#box ol li{ float:left; width:42px; height:42px; background:rgba(255,255,255,0.4); border-radius:50%;font-weight:bolder; margin:0 53px; cursor:pointer; position:relative;}
#box ol li span{ line-height:34px; text-align:center; background:#8bc2d4; position:absolute; top:4px; left:4px; width:34px; height:34px; border-radius:50%; color:#fff; font-size:20px;}
#box ol .active{ background:rgba(124,180,199,0.4);}
#box ol .active span{ color:#8bc2d4; background:#fff;}
</style>
<script src="move.js"></script>
<script>
window.onload=function(){
var oBox=document.getElementById(‘box‘);
var oUl1=oBox.getElementsByTagName(‘ul‘)[0];
var aLi1=oUl1.getElementsByTagName(‘li‘);
var oOl1=oBox.getElementsByTagName(‘ol‘)[0];
var aLi2=oOl1.getElementsByTagName(‘li‘);

for(var i=0;i<aLi1.length;i++){
var aPos=[]
var aSpan=aLi1[i].getElementsByTagName(‘span‘);
for(var j=0;j<aSpan.length;j++){
aPos[j]={left:aSpan[j].offsetLeft,top:aSpan[j].offsetTop};
aSpan[j].style.left=aPos[j].left+‘px‘;
aSpan[j].style.top=aPos[j].top+‘px‘;
}
for(var j=0;j<aSpan.length;j++){
aSpan[j].style.position=‘absolute‘;
aSpan[j].style.background=‘url(img/‘+(i+1)+‘.jpg)‘;
aSpan[j].style.backgroundPosition=‘-‘+j*150+‘px 0‘;
aSpan[j].style.margin=0;
aSpan[j].style.width=0;
}
}
for(var i=0;i<aLi2.length;i++){
(function(index){
aLi2[i].onclick=function(){
tab(index);
};
})(i);
}
function tab(index){
for(var i=0;i<aLi2.length;i++){
aLi2[i].className=‘‘;
aLi1[i].style.opacity=0;
var aSpan=aLi1[i].getElementsByTagName(‘span‘);
for(var j=0;j<aSpan.length;j++){
aSpan[j].style.width=0+‘px‘;
}
}
aLi2[index].className=‘active‘;
aLi1[index].style.opacity=1;
var aSpan=aLi1[index].getElementsByTagName(‘span‘);
for(var j=0;j<aSpan.length;j++){
move(aSpan[j],{width:150});
}
}

};
</script>
</head>-

<body>
<div id="box">
<ul>
<li class="active" style="background:url(img/4.jpg) no-repeat;"><span></span><span></span><span></span><span></span></li>
<li style="background:url(img/1.jpg) no-repeat;"><span></span><span></span><span></span><span></span></li>
<li style="background:url(img/2.jpg) no-repeat;"><span></span><span></span><span></span><span></span></li>
<li style="background:url(img/3.jpg) no-repeat;"><span></span><span></span><span></span><span></span></li>
</ul>
<ol>
<li class="active"><span>1</span></li>
<li><span>2</span></li>
<li><span>3</span></li>
<li><span>4</span></li>
</ol>
</div>
</body>
</html>

时间: 2024-10-09 11:10:01

用JS写的百叶窗的相关文章

用JS写的百叶窗2

<!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title><style>*{margin:0;padding:0;list-style:none;}body{background:url(img/bg.gif) repeat top left;}#box{width:600px;height:400px;margin:50p

用JS写的百叶窗3

<!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title><style>*{margin:0;padding:0;list-style:none;}body{background:url(img/bg.gif) repeat top left;}#box{width:600px;height:400px;margin:50p

原生JS写的ajax函数

参照JQuery中的ajax功能,用原生JS写了一个ajax,功能相对JQuery要少很多,不过基本功能都有,包括JSONP. 调用的方式分为两种: 1. ajax(url, {}); 2. ajax({}); 调用的方法参照JQuery的ajax,只是 不需要写$.ajax ,只需要写 ajax 就可以了. 代码如下: !function () { var jsonp_idx = 1; return ajax = function (url, options) { if (typeof url

用js 写计算器

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"   http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv = "content-type" content="text/html;charset=utf-8"/> &

js 多个checkedBox分组互斥功能实现 由于QQ邮件无法发送暂且将js写在博客园

今天有一项目需要实现多个checkbox分组实现组内互斥功能 . 具体要求如下:大的分类分为A B C 三类, 其中 A   B 中又分为 A1 A2 A3   B1 B2 B3  二级分类,二级分类下又有 A11  A12 A13 A14  A21 A22 A31 A32  B11 B12 B13 B14 ... .要求实现 A B C 互斥 A1 A2 A3 B1 B2 B3 组内互斥.具体结构及代码如下 具体功能树如下: A A1 A11 A12 A13 A2 A21 A22 A3 A31

js写基础insertAfter()方法

DOM没有提供insertAfter()方法,使用js写一个基础的insertAfter()方法. ? 1 2 3 4 5 6 7 8 9 10 11 12 <script type="text/javascript"> function insertAfter(newElement,targetElement){     var parent = targetElement.parentNode;     if(targetElement == parent.lastCh

js写一个通讯录

模拟通讯录列表功能 我们手机上面的通讯录列表里面都有根据右侧的字母跳滚动到该字母的第一个名单地方. 于是我把这个功能拆分成两个功能区思考: 第一个是如何把这些名字的的汉字首字母提取出来,并且把相同字母的汉字归类,最后显示成列表. 第二是右侧字母导航,它需要一直固定在右侧,并且我按一个字母,屏幕最中间会弹出一个字母方框,代表我选中了这个字母. 我首先去实现第一个问题,如何提取名字中第一个汉字的首字母? 我去尝试过许多种方法,其中尝试过使用localeCompare(),我也成功的排序了,但是我发现

JS写小游戏(一):游戏框架

前言 前一阵发现一个不错的网站,都是一些用html5+css+js写的小游戏,于是打算学习一番,写下这个系列博客主要是为了加深理解,当然也有一些个人感悟,如果英文好可以直接Click Here. 概述 一般,小游戏都要关注两个问题:刷新和交互.因为游戏一般是动态的,所以需要不断刷新.JavaScript是单线程,如果用C语言写过贪吃蛇之类的小游戏,应该知道,单线程一般是挂起一个时间来达到动态效果.比如C语言的Sleep(),JS的setInterval()等.但是js还有一种更高性能的方法req

css,js写的简易的tab导航

简易tab导航 作为前端新手,看着别人写的tab导航代码,自己想模仿却总是忘记.于是这次自己利用css,js写了简易的tab导航,话不多说,上代码,首先是html和css部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>tab选项卡切换</title> <style type="tex