<p> 最近在学一部分前端,知识点很多,却没怎么系统地应用过,因而理解可能不够深吧。所以我想做点片段似的东西,不懂的再在网上搜一搜,这样可能会更有意思点,所以做了这个记录,希望自己坚持下去!</p>
- Mytodolist
html code:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MyTodolist</title>
<link href="./css/todolist.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="js/todolist.js"></script>
</head>
<body>
<div id="title">
<span>My todolist</span><input name="thing" class="blank" type="text" value="add a thing here" onclick="clearText()" onblur="addThing()"/>
</div>
<div id="content">
<div class="do">
<p>未完成<input name="usum" class="circle" type="text" value="0"/></p>
<ul name="undo"></ul>
</div>
<div class="do">
<p>已完成<input name="dsum" class="circle" type="text" value="0"/></p>
<ul name="done"></ul>
</div>
<div class="do btnarea">
<input class="clear" type="button" value="全选" onclick="selectAll()"/>
<input class="clear" type="button" value="反选" onclick="oppositeAll()"/>
<input class="clear" type="button" value="清除" onclick="clearAll()"/>
</div>
</div>
</body>
</html>
css code:
@CHARSET "UTF-8";
/*
two colors to use:
rgba(100,147,235,1.0)
rgba(222,184,134,1.0)
*/
html,body,div,applet,object,iframe,
h1,h2,h3,h4,h5,h6,p,blockquote,pre,
a,abbr,acronym,address,big,cite,code,
del,dfn,em,font,img,ins,kbd,q,s,samp,
small,strike,strong,sub,sup,tt,var,
b,u,i,center,
dl,dt,dd,ol,ul,li,
fieldset,form,label,legend,
table,caption,tbody,tfoot,thead,tr,th,td {
margin: 0;
padding: 0;
border: 0;
outline: 0;
/*font-size: 100%; /*字体默认大小*/
font-size:18px;
vertical-align: transparent;
background: transparent;
font-family:Arial;
}
body{line-height: 1;}
ol,ul{list-style: none;}
blockquote,q{quotes: none;}
blockquote:before,blockquote:after,q:before,q:after{content: '';content: none;}
a{text-decoration: none;}
#title{
background-color:rgba(100,147,235,1.0);
text-align:center;
height:50px;
}
#content{
background-color:rgba(220,220,220,1.0);
min-height:700px;
}
span{
display:inline-block;
width:150px;
height:50px;
line-height:50px;
text-align:left;
}
.blank{
width:350px;
height:20px;
color:gray;
border:0px;
}
.do{
width:500px;
min-height:100px;
position:relative;
left:425px;
}
p{
height:50px;
line-height:50px;
font-family:微软雅黑;
font-weight:bold;
}
li{
background-color:rgba(222,184,134,1.0);
height:25px;
line-height:25px;
margin-left:25px;
margin-bottom:10px;
border-radius:5px;/*设置成圆角 */
border-bottom:1px solid black;
}
label{
font-family:微软雅黑;
font-size:14px;
}
.clear{
width:50px;
height:30px;
font-family:微软雅黑;
font-size:14px;
font-weight:bold;
border-radius:5px;
border-bottom:1px solid black;
background-color:lightblue;
}
.btnarea{
text-align:right;
}
b{
font-size:8px;
display:inline-block;
float:right;
color:blue;
}
.circle{
width:20px;
height:20px;
border-radius:20px;
border:1px solid lightgray;
text-align:center;
font-size:15px;
font-weight:bold;
position:relative;
left:425px;
background-color:rgb(232,232,241);
font-family:Arial;
}
js code:
function clearText() {
var nodes = document.getElementsByName("thing");
var inputNode = nodes[0];
inputNode.value = "";
}
function addThing() {
var nodes = document.getElementsByName("thing");
var inputNode = nodes[0];
var text = inputNode.value
if (text != "") {
var undoUl = document.getElementsByName("undo")[0];
undoUl.innerHTML += "<li><input name='item' type='checkbox'/><label>"
+ text
+ "</label><b>done<input type='radio' onclick='todone(this)'/></b></li>";
var circleNode = document.getElementsByName("usum")[0];
circleNode.value = parseInt(circleNode.value) + 1;
}
inputNode.value = "add a thing here";
}
function clearAll() {
var nodes = document.getElementsByName("item");
var len = nodes.length;
var circleNode1 = document.getElementsByName("usum")[0];
var circleNode2 = document.getElementsByName("dsum")[0];
for (var i = 0; i < len; i++) {
if (nodes[i].checked) {
var liNode = nodes[i].parentNode;
var ulNode = liNode.parentNode;
ulNode.removeChild(liNode);
i--;
len--;
var name = ulNode.attributes[0].value;
if (name == "undo")
circleNode1.value--;
else
circleNode2.value--;
}
}
}
function selectAll() {
var nodes = window.document.getElementsByName("item");
for (var i = 0; i < nodes.length; i++) {
nodes[i].checked = true;
}
}
function oppositeAll() {
var nodes = document.getElementsByName("item");
for (var i = 0; i < nodes.length; i++) {
var before = nodes[i].checked;
nodes[i].checked = !before;
}
}
function todone(param) {
var liNode = param.parentNode.parentNode;
param.parentNode.innerHTML = "undo<input type='radio' onclick='toundo(this)'/>";
var ulNode = document.getElementsByName("done")[0];
ulNode.appendChild(liNode);
var circleNode = document.getElementsByName("usum")[0];
var sum = parseInt(circleNode.value)
if (sum > 0) {
circleNode.value = sum - 1;
}
circleNode = document.getElementsByName("dsum")[0];
circleNode.value = parseInt(circleNode.value) + 1;
}
function toundo(param) {
var liNode = param.parentNode.parentNode;
param.parentNode.innerHTML = "done<input type='radio' onclick='todone(this)'/>";
var ulNode = document.getElementsByName("undo")[0];
ulNode.appendChild(liNode);
var circleNode = document.getElementsByName("dsum")[0];
var sum = parseInt(circleNode.value)
if (sum > 0) {
circleNode.value = sum - 1;
}
circleNode = document.getElementsByName("usum")[0];
circleNode.value = parseInt(circleNode.value) + 1;
}
- 仿导航条效果
(1) 鼠标悬停时切换展示内容
(2) 自动轮播展示内容
(3) 清除自动展示
html code:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>导航条效果</title>
</head>
<body>
<div id="nav">
<div id="stop">
<input type="button" value="停止轮播" onclick="notAuto()" />
</div>
<div id="title">
<ul>
<li class="over" onmouseover="moveTo('c1')"><label>为你推荐</label></li>
<li onmouseover="moveTo('c2')"><label>电子</label></li>
<li onmouseover="moveTo('c3')"><label>轻音乐</label></li>
<li onmouseover="moveTo('c4')"><label>经典</label></li>
<li onmouseover="moveTo('c5')"><label>热门游戏</label></li>
<li onmouseover="moveTo('c6')"><label class="noborder">情歌</label></li>
</ul>
</div>
<div id="content">
<div id="c1">
<div class="inner">
<img src="img/1.png" />
<p>
<a href="">每日新歌:郑容和写给你的情书</a>
</p>
<p>
<a href="" class="below">播放量: 14.1万</a>
</p>
</div>
<div class="inner">
<img src="img/2.png" />
<p>
<a href="">[知味沧桑] 历经岁月才能体会</a>
</p>
<p>
<a href="" class="below">播放量: 9.0万</a>
</p>
</div>
</div>
<div id="c2" style="display: none">
<div class="inner">
<img src="img/3.png" />
<p>
<a href="">催眠系Chillout 星空遐想氛围</a>
</p>
<p>
<a href="" class="below">播放量: 2.2万</a>
</p>
</div>
<div class="inner">
<img src="img/4.png" />
<p>
<a href="">历史老师推荐盛世民俗必听古风</a>
</p>
<p>
<a href="" class="below">播放量: 16.9万</a>
</p>
</div>
</div>
<div id="c3" style="display: none">
<div class="inner">
<img src="img/5.png" />
<p>
<a href="">令人心跳加速的的甜蜜日漫片尾曲</a>
</p>
<p>
<a href="" class="below">播放量: 69.0万</a>
</p>
</div>
<div class="inner">
<img src="img/6.png" />
<p>
<a href="">历史老师推荐盛世民俗必听古风</a>
</p>
<p>
<a href="" class="below">播放量: 16.9万</a>
</p>
</div>
</div>
<div id="c4" style="display: none">
<div class="inner">
<img src="img/7.png" />
<p>
<a href="">令人心跳加速的的甜蜜日漫片尾曲</a>
</p>
<p>
<a href="" class="below">播放量: 69.0万</a>
</p>
</div>
<div class="inner">
<img src="img/8.png" />
<p>
<a href="">历史老师推荐盛世民俗必听古风</a>
</p>
<p>
<a href="" class="below">播放量: 16.9万</a>
</p>
</div>
</div>
<div id="c5" style="display: none">
<div class="inner">
<img src="img/9.png" />
<p>
<a href="">令人心跳加速的的甜蜜日漫片尾曲</a>
</p>
<p>
<a href="" class="below">播放量: 69.0万</a>
</p>
</div>
<div class="inner">
<img src="img/10.png" />
<p>
<a href="">历史老师推荐盛世民俗必听古风</a>
</p>
<p>
<a href="" class="below">播放量: 16.9万</a>
</p>
</div>
</div>
<div id="c6" style="display: none">
<div class="inner">
<img src="img/11.png" />
<p>
<a href="">令人心跳加速的的甜蜜日漫片尾曲</a>
</p>
<p>
<a href="" class="below">播放量: 69.0万</a>
</p>
</div>
<div class="inner">
<img src="img/12.png" />
<p>
<a href="">历史老师推荐盛世民俗必听古风</a>
</p>
<p>
<a href="" class="below">播放量: 16.9万</a>
</p>
</div>
</div>
</div>
</div>
</body>
</html>
css code:
<style type="text/css">
* {
margin: 0;
padding: 0;
list-style-type: none;
font: 14px Arial, Helvetica, sans-serif, "新宋体", "微软雅黑";
}
#title {
width: 720px;
height: 50px;
margin: 0px auto 0 auto;
}
#title li {
float: left;
width: 120px;
height: 50px;
background: lightgreen;
}
#title li label {
display: block;
margin: 15px auto;
text-align: center;
border-right: 1px solid gray;
}
#title li label.noborder {
border: none;
}
#content {
width: 720px;
height: 370px;
margin: 15px auto;
background: lightyellow;
border: 1px dashed black;
border-radius: 20px;
}
#content div {
width: 100%;
height: 100%;
}
#title li.over {
background: green;
color: white;
}
#stop {
width: 720px;
height: 80px;
margin: 50px auto 0 auto;
position: relative;
}
#stop input {
width: 80px;
height: 30px;
background: lightyellow; border-bottom : 1px solid black;
border-radius: 10px;
position: absolute;
right: 0;
bottom: 30px;
cursor: pointer;
border-bottom: 1px solid black;
}
#content .inner {
width: 360px;
height: 370px;
float: left;
}
img {
display: block;
margin: 20px auto;
}
p {
width: 268px;
margin: 10px auto;
}
a {
text-decoration: none;
color: black;
}
a.below {
color: darkgray;
}
a:hover {
color: green;
}
</style>
js code:
<script type="text/javascript">
var scrollTime = 2000;
var intervalId;
var count = 0;
window.onload = function() {
var args = [ 'c1', 'c2', 'c3', 'c4', 'c5', 'c6' ];
intervalId = setInterval(func, scrollTime);
function func() {
moveTo(args[count]);
}
}
function notAuto() {
clearInterval(intervalId);
}
function moveTo(param) {
//first
var liNodes = document.getElementsByTagName("li");
for (var i = 0; i < liNodes.length; i++) {
liNodes[i].className = "";
if (i < liNodes.length - 1)
liNodes[i].childNodes[0].className = "";
}
var index = parseInt(param.charAt(1)) - 1;
var liNode = liNodes[index];
liNode.className = "over";
liNode.childNodes[0].className = "noborder";
if (index > 0) {
liNodes[index - 1].childNodes[0].className = "noborder";
}
//second
for (var i = 1; i <= 6; i++) {
var all = 'c' + i;
var div = document.getElementById(all);
div.style.display = "none";
}
var divNode = document.getElementById(param);
divNode.style.display = "block";
count = (index + 1) % 6;
}
</script>