计划列表 、整屏翻页
计划列表:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>计划列表</title>
<style type="text/css">
.list_con{
width:400px;
margin:50px auto 0;
}
.inputtxt{
width:350px;
height:30px;
border:1px solid #ccc;
padding:0px;
text-indent:10px;
}
.inputbtn{
width:40px;
height:32px;
padding:0px;
border:1px solid #ccc;
}
.list{
margin:0;
padding:0;
list-style:none;
margin-top:20px;
}
.list li{
height:30px;
line-height:30px;
border-bottom:1px solid #ccc;
}
.list li span{
float:left;
}
.list li a{
float:right;
text-decoration:none;
margin:0 10px;
}
</style>
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript">
$(function(){
//绑定增加按钮的点击事件
$('#btn1').click(function() {
//获取文本框的内容
var txt = $('#txt1').val();
//清空文本框的内容
$('#txt1').val('');
//判断文本框的内容不允许为空
if(txt == ''){
alert('请输入内容!');
return;
}
//按照用户输入的内容准备好一个li列表项(从结构中复制,并替换其中的文字)
var $li = $('<li><span>' + txt + '</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>');
//把li追加到ul中
$li.appendTo('#list');
});
/*
//删除的点击监听(这种方式绑定会导致后增加的条目无法删除,因为监听在页面ready的时候绑定,还没有产生后增加的条目,所以无法实现动态绑定)
$('.del').click(function() {
$(this).parent().remove();
});
*/
//使用事件委托可以实现动态绑定,并且性能更高
$('#list').delegate('a', 'click', function() {
//获取点击元素的class属性的值
var handler = $(this).attr('class');
//根据class属性的值判断点的是删除还是排序
switch(handler){
case 'del'://删除
var txt = $(this).parent().children(':first').html();
if(confirm('你确定要删除"'+txt+'"吗?')){
$(this).parent().remove();
}
break;
case 'up'://向上
//如果当前元素之前的元素长度为0,说明前边没有其它元素了
if($(this).parent().prev().length == 0){
alert('到顶了!');
return;
}
//把当前li插到前边,谁的前边?它前一个元素的前边
$(this).parent().insertBefore($(this).parent().prev());
break;
case 'down'://向下
//如果当前元素之后的元素长度为0,说明后边没有其它元素了
if($(this).parent().next().length == 0){
alert('到底了!');
return;
}
//把当前li插到后边,谁的后边?它后一个元素的后边
$(this).parent().insertAfter($(this).parent().next());
break;
}
});
})
</script>
</head>
<body>
<div class="list_con">
<h2>To do list</h2>
<input type="text" name="" id="txt1" class="inputtxt">
<input type="button" name="" value="增加" id="btn1" class="inputbtn">
<ul id="list" class="list">
<li><span>学习html</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>
<li><span>学习css</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>
<li><span>学习javascript</span><a href="javascript:;" class="up"> ↑ </a><a href="javascript:;" class="down"> ↓ </a><a href="javascript:;" class="del">删除</a></li>
</ul>
</div>
</body>
</html>
运行效果:
整屏翻页:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>整屏滚动</title>
<link rel="stylesheet" type="text/css" href="css/test.css">
<script type="text/javascript" src="js/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="js/jquery.mousewheel.js"></script>
<script type="text/javascript">
$(function(){
//获取可视区的高度
var $h = $(window).height();
// alert($h);//973
var $pages = $('.pages');
var $points = $('.points li');
var len = $pages.length;//一共有几屏
var nowscreen = 0;//当前是第几屏
var timer = null;
//一开始给第一屏加淡入动画
$pages.eq(0).addClass('moving');
//把每一屏都设成可视区的高度
$pages.css({height:$h});
//鼠标滚轮的滚动事件
$(window).mousewheel(function(event, data){
//通过清除定时器实现函数节流,避免高频触发滚轮事件时一下滚动多次
clearTimeout(timer);
timer = setTimeout(function(){
//向下滑动是-1,向上滑动是1
// alert(data);
if(data == -1){//向下滑动
nowscreen++;
if(nowscreen > len -1){
nowscreen = len -1;
}
}else{//向上滑动
nowscreen--;
if(nowscreen < 0){
nowscreen = 0;
}
}
//修改top的值实现翻页
$('.pages_con').animate({top: -$h * nowscreen},300);
//设置当前小圆点和其它小圆点的样式
$points.eq(nowscreen).addClass('active').siblings().removeClass('active');
//当前屏做淡入动画,其它屏移除样式
$pages.eq(nowscreen).addClass('moving').siblings().removeClass('moving');
},200);//延迟200毫秒是经验数据
})
//点击小圆点也实现翻页和动画
$points.click(function() {
$(this).addClass('active').siblings().removeClass('active');
$('.pages_con').animate({top: -$h*$(this).index()}, 300);
$pages.eq($(this).index()).addClass('moving').siblings().removeClass('moving');
});
})
</script>
</head>
<body>
<div class="pages_con">
<div class="pages page1">
<div class="main_con">
<div class="left_img"><img src="images/001.png"></div>
<div class="right_info">
Web前端开发是从网页制作演变而来的,名称上有很明显的时代特征。在互联网的演化进程中,网页制作是Web1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行为也以浏览为主。
</div>
</div>
</div>
<div class="pages page2">
<div class="main_con">
<div class="right_img"><img src="images/002.png"></div>
<div class="left_info">
2005年以后,互联网进入Web2.0时代,各种类似桌面软件的Web应用大量涌现,网站的前端由此发生了翻天覆地的变化。网页不再只是承载单一的文字和图片,各种富媒体让网页的内容更加生动,网页上软件化的交互形式为用户提供了更好的使用体验,这些都是基于前端技术实现的。
</div>
</div>
</div>
<div class="pages page3">
<div class="main_con">
<div class="left_img"><img src="images/004.png"></div>
<div class="right_info">
以前会Photoshop和Dreamweaver就可以制作网页,现在只掌握这些已经远远不够了。无论是开发难度上,还是开发方式上,现在的网页制作都更接近传统的网站后台开发,所以现在不再叫网页制作,而是叫Web前端开发。
</div>
</div>
</div>
<div class="pages page4">
<div class="main_con">
<div class="left_img"><img src="images/003.png"></div>
<div class="right_info">
Web前端开发在产品开发环节中的作用变得越来越重要,而且需要专业的前端工程师才能做好,这方面的专业人才近几年来备受青睐。Web前端开发是一项很特殊的工作,涵盖的知识面非常广,既有具体的技术,又有抽象的理念。简单地说,它的主要职能就是把网站的界面更好地呈现给用户。
</div>
</div>
</div>
<div class="pages page5">
<div class="main_con">
<div class="center_img"><img src="images/005.png"></div>
</div>
</div>
</div>
<!-- 定位到屏幕右侧的小圆点 -->
<ul class="points">
<li class="active"></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</body>
</html>
运行效果: