zoukankan      html  css  js  c++  java
  • JQuery 全屏滚动

    <!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>
  • 相关阅读:
    HRESULT:0x80070057 (E_INVALIDARG)的异常的解决方案
    c# 取两个时间的间隔
    [转]C#算法
    智能仓库管理系统方案(四)
    分页存储过程
    ASP.NET2.0_多语言本地化应用程序(转)
    C#绘图双缓冲技术总结(转)
    C#.net同步异步SOCKET通讯和多线程总结(转)
    WIN2003 sp2中Delphi 7中的Project菜单中Options菜单打不开
    C#关于日期月天数和一年有多少周及某年某周时间段的计算
  • 原文地址:https://www.cnblogs.com/jrri/p/11348407.html
Copyright © 2011-2022 走看看