<!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.min.js"></script> <script type="text/javascript"> $(function(){ // !!!!!增加定时器之后,出效果会比较缓慢, 应该多些耐性, // 耗时:0.5h // . // 在pages_con中从上到下依次排列了五个页面. 在滚动滑轮或者点击导航点的时候切换索引,在完成切换之后增加moveing属性完成动画. var $screen = $('.pages_con') // var $screen = $('pages_con') // !!!!!!!!!! 在输入变量的时候一定确定是否把引入方式填写正确. // !!!!!!!!!! 此处浪费1.5h var $pages = $('.pages'); // var $len = $($pages.length) // 此处不需要$() 引导. var $len = $pages.length; // alert($pages) // alert($len) 弹出5,5 个元素 // 1.此布局中,没有设置高度,需要自己获取窗口高度,然后由此来定位每次页面移动距离. var $h = $(window).height(); // alert($h) $pages.css({'height':$h}); // 刚开始的时候page1就要增加moving动画 $pages.eq(0).addClass('moving'); // -----滑轮事件向下滚动是-1, 用scrollBottom来衡量页数更方便些.----错误! 滚动事件只有-1和1,无所谓正负值方便与否. 更主要应该根据页数布局来衡量计算方式. // 依次从上到下,从上到下浏览,就应该使用scrollTop. var $nowscreen = 0; var timer = null; // 占据变量符. //编辑导航点. var $points = $('.points li'); // alert($points.length) // 默认激活页面1的导航点. $points.eq(0).addClass('active'); // 当发生点击导航点事件时候, 切换页面, 且切换导航点激活状态. $points.click(function(){ $nowscreen = $(this).index(); $(this).addClass('active').siblings().removeClass('active'); $screen.animate({'top':-$h*$nowscreen},300) $pages.eq($nowscreen).addClass('moving').siblings().removeClass('moving'); }) $(window).mousewheel(function(event,dat){ // 此处单单添加dat不起作用, 需要增加event事件函数. clearTimeout(timer); // var timer = setTimeout(function(){ // 定时器需要增加var , 但是不能在每个函数内部分别设置变量.相当于有很多个变量 timer = setTimeout(function(){ //判断滚动事件 if (dat==-1||dat<-1) { $nowscreen++; } // else if(dat==1){ else if(dat==1||dat>1){ $nowscreen--; } // 限制上方屏幕 if ($nowscreen<0){ $nowscreen=0; } // 限制下方屏幕 if ($nowscreen>$len-1){ $nowscreen=$len-1; } // document.title=$nowscreen; // $('html body').animate({'top':-$nowscreen*$h}); // $(document).scrollTop(-$nowscreen*$h); // 此处因为pages_con的宽高设置都为原本属性的100%, 所以挪动document和htmlbody都没有用; // 判断滚动事件后, 切换页面, 且 切换导航点激活状态. $screen.animate({'top':-$h*$nowscreen},300) $pages.eq($nowscreen).addClass('moving').siblings().removeClass('moving'); $points.eq($nowscreen).addClass('active').siblings().removeClass('active'); },100) }) }) </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></li> <li></li> <li></li> <li></li> <li></li> </ul> </body> </html>