教程:纯CSS和JavaScript做的一个大风车效果
时间:2010-05-25
来源:互联网
下面是我用脚本联合样式表做的风车效果
首先要用CSS做出风车的样子,这个就要根据div的框模型了,当边框的值较小的时候每条边框看起来是一条直线,然而当边框的值变大的时候,边框的棱角就很清晰了,这一点可以根据把一个块的四个边框设成不同的颜色查看效果。当块的长和宽都为零,而border值设得很大时,这时每条边都是三角形的,如图:
,
然后写四个div,把他们拼贴成如图2的样子,分别对块1、2、3、4,的右、下、上、左边设置不同的颜色,就成了风车的基本原形了。
代码如下:HTML
在ie6以上和火狐上表现都很好,大家多顶一下啊
大风车效果.rar (1.22 KB)
本文转载自http://www.javascript8.com/bbs/viewthread.php?tid=17&page=1&extra=#pid17
[ 本帖最后由 freeman9981 于 2010-5-25 21:14 编辑 ]
首先要用CSS做出风车的样子,这个就要根据div的框模型了,当边框的值较小的时候每条边框看起来是一条直线,然而当边框的值变大的时候,边框的棱角就很清晰了,这一点可以根据把一个块的四个边框设成不同的颜色查看效果。当块的长和宽都为零,而border值设得很大时,这时每条边都是三角形的,如图:
,
然后写四个div,把他们拼贴成如图2的样子,分别对块1、2、3、4,的右、下、上、左边设置不同的颜色,就成了风车的基本原形了。
代码如下:HTML
复制内容到剪贴板
<div id="box1" class="block"></div>
<div id="box2" class="block"></div>
<div id="box3" class="block"></div>
<div id="box4" class="block"></div>
</div>
CSS:
代码:
<div id="box"><div id="box1" class="block"></div>
<div id="box2" class="block"></div>
<div id="box3" class="block"></div>
<div id="box4" class="block"></div>
</div>
复制内容到剪贴板
height: 0px;
width: 0px;
border-top-width: 50px;
border-right-width: 50px;
border-bottom-width: 50px;
border-left-width: 50px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
}
#box1{
float: left;
border-right-color: #FF0000;
}
#box2{
float: left;
border-bottom-color: #FFFF00;
}
#box3{
float: left;
border-top-color: #999999;
}
#box4{
float: left;
border-bottom-color: #cc6666;
}
#box{ height:200px;
width:200px;
margin:50px auto;}
接下来要做的就是让这个风车旋转起来了,脚本如下:
代码:
.block {height: 0px;
width: 0px;
border-top-width: 50px;
border-right-width: 50px;
border-bottom-width: 50px;
border-left-width: 50px;
border-top-style: solid;
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
}
#box1{
float: left;
border-right-color: #FF0000;
}
#box2{
float: left;
border-bottom-color: #FFFF00;
}
#box3{
float: left;
border-top-color: #999999;
}
#box4{
float: left;
border-bottom-color: #cc6666;
}
#box{ height:200px;
width:200px;
margin:50px auto;}
复制内容到剪贴板
var color= new Array('red','blue','green','yellow');
//定义临时变量,轮换颜色时要用
var tem=0;
//定义速度,也就是间隔多长时间转一下,单位为毫秒
var speed=500;
//自定义函数,简化获取id对象的代码
function get(id){
return document.getElementById(id);
}
//让风车转动的函数
function zhuan(){
tem++;
var b1=get('box1');
var b2=get('box2');
var b3=get('box3');
var b4=get('box4');
b1.style.borderRightColor=color[tem%4];
b2.style.borderBottomColor=color[(tem+3)%4];
b3.style.borderTopColor=color[(tem+1)%4];
b4.style.borderLeftColor=color[(tem+2)%4];
//每隔一定时间调用一下自身。这样就一直转动了
setTimeout(zhuan,speed);
}
ok,这样就完成了一个转动的风车的效果了,是不是很好玩啊。代码:
//定义风车四个颜色的数组var color= new Array('red','blue','green','yellow');
//定义临时变量,轮换颜色时要用
var tem=0;
//定义速度,也就是间隔多长时间转一下,单位为毫秒
var speed=500;
//自定义函数,简化获取id对象的代码
function get(id){
return document.getElementById(id);
}
//让风车转动的函数
function zhuan(){
tem++;
var b1=get('box1');
var b2=get('box2');
var b3=get('box3');
var b4=get('box4');
b1.style.borderRightColor=color[tem%4];
b2.style.borderBottomColor=color[(tem+3)%4];
b3.style.borderTopColor=color[(tem+1)%4];
b4.style.borderLeftColor=color[(tem+2)%4];
//每隔一定时间调用一下自身。这样就一直转动了
setTimeout(zhuan,speed);
}
在ie6以上和火狐上表现都很好,大家多顶一下啊

本文转载自http://www.javascript8.com/bbs/viewthread.php?tid=17&page=1&extra=#pid17
[ 本帖最后由 freeman9981 于 2010-5-25 21:14 编辑 ]
作者: freeman9981 发布时间: 2010-05-25
顶过
作者: freeman9981 发布时间: 2010-05-25
还不错....学习了
作者: iaw2001200 发布时间: 2010-05-25
不错,给出了设计思路,学习下
作者: lifee 发布时间: 2010-05-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28