网易游戏js-滚动支持自适应

nie.config.copyRight.setGray();

var nieCarousel = (function ($) {
    var defaultOptions = {
        children: ‘.center-slide-box a‘,
        nextBtn: ‘.slide-next‘,
        prevBtn: ‘.slide-prev‘,
        navList:‘.center-slide-nav li‘,
        box:‘.center-slide‘,
        resNav:‘.center-slide-res-nav li‘,
        autoPlay: true

    }
    var current = 0;
    var tempCurrent=0;//for click event
    var transfer = false;
    var nieCarousel = function (box, options) {
        this.options = $.extend({}, defaultOptions, options);
        this._$children = $(this.options.children);
        this._$nav = $(this.options.navList);
        this._$resNav=$(this.options.resNav);
        this._num = this._$children.length;
        this._autoPlay=this.options.autoPlay;
        this._$box=$(this.options.box);
        this.init();
    }

    nieCarousel.prototype.initNext = function () {
        var self = this;
        var num = self._num;
        var $ele = $(self.options.nextBtn);
        function showNext() {
            if (!transfer) {
                transfer = true;
                if(current+1==self._num){
                    self._$children.eq(0).css({left:‘100%‘})
                }
                self._$children.eq(current % num).animate({
                    left: ‘-100%‘
                }, 300);
                self._$children.eq(++current % num).animate({
                    left: ‘0%‘
                }, 300, function () {
                    transfer = false;
                    self._$children.eq((current-1)%num).css({‘left‘:‘-100%‘});
                    self._$children.eq((current+1)).css({‘left‘:‘100%‘})
                });
                navTransfer();
            }
        }
        function navTransfer(){
            current%num==0?current=0:‘‘;
            $(‘.center-slide-nav li .default‘).eq(current-1).animate({
                top:‘0‘
            }).parent().removeClass(‘on‘);
            $(‘.center-slide-nav li .default‘).eq(current).animate({
                top:‘-100%‘
            }).parent().addClass(‘on‘);
            self._$resNav.eq(current).addClass(‘on‘);
            self._$resNav.eq(current-1).removeClass(‘on‘);
            if(self.setTimeOutId&&!($.browser.msie&& $.browser.version==‘6.0‘)){
                $(‘.progress-inner‘).removeClass(‘progress-loading‘);
                $(‘.progress-inner‘).eq((current+1)%self._num).addClass(‘progress-loading‘);
            }
        }
        $ele.click(showNext);
    }
    nieCarousel.prototype.initPrev = function () {
        var self = this;
        var num = self._num;
        var $ele = $(self.options.prevBtn);
        function showPrev() {
            if (!transfer) {
                transfer = true;
                if(current%self._num==0){
                    self._$children.eq(-1).css({left:‘-100%‘})
                }
                self._$children.eq(current % num).animate({
                    left: ‘100%‘
                }, 300);
                self._$children.eq(--current % num).animate({
                    left: ‘0%‘
                }, 300,function(){
                    transfer=false;
                    self._$children.eq((current-1)%num).css({‘left‘:‘-100%‘});
                    self._$children.eq((current+1)%num).css({‘left‘:‘100%‘})
                });
                navTransfer();
                current%num==0?current=0:‘‘;
            }
        }
        function navTransfer(){
            self._$nav.find(‘.default‘).eq(current+1).animate({
                top:‘0‘
            }).parent().removeClass(‘on‘);
            self._$nav.find(‘.default‘).eq(current).animate({
                top:‘-100%‘
            }).parent().addClass(‘on‘);
            self._$resNav.eq(current).addClass(‘on‘);
            self._$resNav.eq(current+1).removeClass(‘on‘);
        }
        $ele.click(showPrev);
    }
    nieCarousel.prototype.initNav = function () {
        var self = this;
        function setNavClickFn(index){
            tempCurrent=current;
            current=index;
            var leftPos;
            if(!transfer&&(tempCurrent!=current)){
                transfer=true;
                self._$nav.eq(tempCurrent).removeClass(‘on‘);
                self._$resNav.eq(tempCurrent).removeClass(‘on‘);
                self._$nav.eq(tempCurrent).find(‘.default‘).animate({
                    top:0
                })
                $(this).addClass(‘on‘);
                current>tempCurrent?leftPos=‘-100%‘:leftPos=‘100%‘;
                current>tempCurrent?self._$children.eq(current).css(‘left‘,‘100%‘):self._$children.eq(current).css(‘left‘,‘-100%‘);
                self._$children.eq(tempCurrent).animate({
                    left:leftPos
                })
                self._$children.eq(current).animate({
                    left:0
                },function(){
                    transfer=false;
                    self._$children.not(current).each(function(index){
                        if(index>current){
                            $(this).css({left:‘100%‘})
                        }else{
                            $(this).css({left:‘-100%‘})
                        }
                        if(index==current){
                            $(this).css(‘left‘,‘0‘)
                        }
                    })
                })
            }
        }
        self._$nav.each(function (index) {
            $(this).hover(function () {
                self._$nav.not(‘.on‘).find(‘.default‘).stop().animate({
                    top:‘0‘
                })
                self._$nav.eq(index).find(‘.default‘).stop().animate({
                    top:‘-100%‘
                })
            },function(){
                !$(this).hasClass(‘on‘)&&$(this).find(‘.default‘).animate({
                    top:‘0‘
                })
            })
            $(this).click(function(){
                setNavClickFn.call(this,index);
            });
        })

        self._$resNav.each(function(index){
            $(this).click(function(){
                setNavClickFn.call(this,index);
            })
        })
    }
    nieCarousel.prototype.autoPlay = function () {
        var self=this;
        this.setTimeOutId=setInterval(function(){
            $(self.options.nextBtn).trigger(‘click‘)
        },3000)
    }
    nieCarousel.prototype.hoverEvent=function(){
        var self=this;
        self._$box.hover(function(){
            clearInterval(self.setTimeOutId);
            self.setTimeOutId=0;  //watch if user click or auto play
            $(‘.progress-inner‘).removeClass(‘progress-loading‘);
        },function(){
            self._autoPlay&&self.autoPlay();
            self._autoPlay&&!($.browser.msie&& $.browser.version==‘6.0‘)&&$(‘.progress-inner‘).eq((current+1)%self._num).addClass(‘progress-loading‘);
        })
    }
    nieCarousel.prototype.initDefault=function(){
        var self = this;
        var isFirst = false;
        this._$children.each(function (index) {
            index == 0 ? isFirst = true : isFirst = false;
            (!isFirst) && $(this).css({
                left: ‘100%‘
            })
        });
        this._$nav.find(‘.num‘).each(function(i){
            $(this).html(i+1);
        })
        this._$nav.eq(0).addClass(‘on‘).find(‘.default‘).css(‘top‘,‘-100%‘);
        this._autoPlay&&!($.browser.msie&& $.browser.version==‘6.0‘)&&$(‘.progress-inner‘).eq(1).addClass(‘progress-loading‘);
    }
    nieCarousel.prototype.init = function () {
        this.initDefault();
        this.initNext();
        this.initPrev();
        this.initNav();
        this._autoPlay&&this.autoPlay();
        this.hoverEvent();
    }
    return nieCarousel;
})(jQuery);

$(function () {
    //set default speeds !override $.fx.speeds._default
    $.fx.speeds._default=300;
    var carousel = new nieCarousel(‘.center-slide-box‘, {
        children: ‘.center-slide-box a‘,
        nextBtn: ‘.slide-next‘,
        prevBtn: ‘.slide-prev‘,
        navList:‘.center-slide-nav li‘,
        autoPlay:true
    });
    /**
     * window resize set height
     */
    $(window).resize(function(){
            if($(window).width()<1000){
                $(‘.center-slide‘).height($(‘.center-slide‘).width()*0.55);
                $(‘.center-news‘).height($(‘.center-slide‘).height()+1);
            }else{
                $(‘.center-news‘).height(405);
                $(‘.center-slide‘).height(406);
            }
            if($(window).width()<768){

            }
    })

    if($(window).width()<1000){
        $(‘.center-slide‘).height($(‘.center-slide‘).width()*0.55);
        $(‘.center-news‘).height($(‘.center-slide‘).height()+1);
    }else{
        $(‘.center-news‘).height(405);
        $(‘.center-slide‘).height(406);

    }

    //entrance-list-res
    (function(){
        var $ele= $(‘.entrance-list-ul li:not(.entrance-list-btn)‘),
            length=$ele.length,
            next=true,
            prev=false,
            status=length%9;  //for 768
        function ipadEntrance(){
            next&&(function(){
                $(‘.entrance-list-next‘).removeClass(‘disabled‘);
                $(‘.entrance-list-prev‘).addClass(‘disabled‘);
                $ele.removeClass(‘res-hide‘);
                for(var index=-status;index<0;index++){
                    $ele.eq(index).addClass(‘res-hide‘);
                }
            }());
            prev&&(function(){
                $(‘.entrance-list-prev‘).removeClass(‘disabled‘);
                $(‘.entrance-list-next‘).addClass(‘disabled‘);
                $ele.removeClass(‘res-hide‘);
                for(var index=0;index<status;index++){
                    $ele.eq(index).addClass(‘res-hide‘);
                }
            }());
        }
        ipadEntrance();
        $(‘.entrance-list-btn‘).click(function(){
            next=!next;
            prev=!prev;
            ipadEntrance();
        })
    })();

    var entranceScroll=(function(){
        var $ele=$(‘.entrance-list-ul li:not(.entrance-list-btn)‘),
            $next=$(‘.entrance-list-next‘),
            $prev=$(‘.entrance-list-prev‘),
            $eleNav=$(‘.entrance-list-nav a‘),
            length=$ele.length,
            nowCount= 0,
            groups=Math.ceil(length/4),
            cls=0;
        for(var i=0;i<length;i++){
            $ele.eq(i).addClass(‘res-group-‘+cls);
            (i+1)%4==0?++cls:‘‘;
            i>3?‘‘:$ele.eq(i).addClass(‘res-group-show‘);
        }
        function init(){
            $next.click(function(){
                var current=(++nowCount)%groups,
                    domEle=$(‘.res-group-‘+current);
                $ele.removeClass(‘res-group-show‘);
                domEle.addClass(‘res-group-show‘);
                $eleNav.removeClass(‘current‘).eq(current).addClass(‘current‘);
                nowCount%groups==0?nowCount=0:‘‘;
            })
            $prev.click(function(){
                var current=(--nowCount)%groups,
                    ii=current<0?(current+groups):current
                    domEle=$(‘.res-group-‘+ii);
                $ele.removeClass(‘res-group-show‘);
                domEle.addClass(‘res-group-show‘);
                $eleNav.removeClass(‘current‘).eq(current).addClass(‘current‘);
                nowCount%groups==0?nowCount=0:‘‘;
            })
            $eleNav.each(function(i){
                $(this).click(function(){
                    nowCount=i;
                    $eleNav.removeClass(‘current‘).eq(i).addClass(‘current‘);
                    var  domEle=$(‘.res-group-‘+i);
                    $ele.removeClass(‘res-group-show‘);
                    domEle.addClass(‘res-group-show‘);
                })
            })
        }
        return{
            init:init
        }
    }())
    entranceScroll.init();

    //mobile-list-res added by mrF 2014-5-8
    var mgameLength = $(‘.mgame-list-pic‘).find(‘li‘).length,len;
    mgameLength%3 == 0?len = parseInt(mgameLength/3):len = parseInt(mgameLength/3)+1
    for(var i = 0;i<len;i++){
        $(‘.mgame-list-pic-nav‘).append(‘<a class="mgame-list-pic-nav-tab" href="javascript:void(0)"><div class="mgame-list-pic-nav-tab-bar"></div></a>‘);
    }
    $(‘.mgame-list-pic-nav-tab‘).eq(0).addClass(‘current‘);
    $(‘.mgame-list-pic-nav-tab‘).hover(function(){
        var num = $(this).index();
        $(this).addClass(‘current‘);
        $(this).siblings().stop(false,true).removeClass(‘current‘);
        $(‘.mgame-list-pic‘).stop().animate({‘left‘:num*(-1017)+‘px‘},250);
    })
})

滚动HTML代码


<section class="center-slide">
<div class="center-slide-box">

<a href="http://gad.netease.com/gad/access?project_id=1035062&s=sddbS%2B1KjKSIhVkdV3OZ4D8ooB8%3D&code_type=1" target="_blank"><img src="http://img.nie.163.com/images/2014/7/4/2014-07-04_464367.jpg" alt="实况俱乐部 嘉年华"/></a>
<a href="http://txhd.163.com/" target="_blank"><img src="http://img.nie.163.com/images/2014/7/7/2014-07-07_464993.jpg" alt="天下HD 凶萌开测"/></a>
<a href="http://xy3.163.com/" target="_blank"><img src="http://img.nie.163.com/images/2014/7/9/2014-07-09_465419.jpg" alt="新大话3 全新资料片"/></a>
<a href="http://gad.netease.com/gad/access?project_id=1034900&s=GnBeQHwpvPVXwpCUPlaoUW1MmC0%3D&code_type=1" target="_blank"><img src="http://img.nie.163.com/images/2014/7/4/2014-07-04_464161.jpg" alt="忍者必须死2 新版本"/></a>
<a href="http://yzr.163.com" target="_blank"><img src="http://img.nie.163.com/images/2014/6/20/2014-06-20_460757.jpg" alt="影之刃 终极封测"/></a>

<span class="slide-next"></span>
<span class="slide-prev"></span>
</div>
<ul class="center-slide-nav">
<li>
<a href="javascript:;" class="default">
<span class="num">1</span>

<div class="progress">
<div class="progress-inner"></div>
</div>
<span class="title">实况俱乐部 嘉年华</span>
</a>
<a href="javascript:;" class="hover">
<div class="mask"></div>
<img src="http://nie.163.com/banner/13v1/nie_0704sk.jpg">

<div class="content">
<p>实况俱乐部 嘉年华</p>
<span>查看详情<i></i></span>
</div>
</a>
</li>
<li>
<a href="javascript:;" class="default">
<span class="num">1</span>

<div class="progress">
<div class="progress-inner"></div>
</div>
<span class="title">天下HD 凶萌开测</span>
</a>
<a href="javascript:;" class="hover">
<div class="mask"></div>
<img src="http://nie.163.com/banner/13v1/nie_txhd0707.jpg">

<div class="content">
<p>天下HD 凶萌开测</p>
<span>查看详情<i></i></span>
</div>
</a>
</li>
<li>
<a href="javascript:;" class="default">
<span class="num">1</span>

<div class="progress">
<div class="progress-inner"></div>
</div>
<span class="title">新大话3 全新资料片</span>
</a>
<a href="javascript:;" class="hover">
<div class="mask"></div>
<img src="http://nie.163.com/banner/13v1/nie_xy30709.jpg">

<div class="content">
<p>新大话3 全新资料片</p>
<span>查看详情<i></i></span>
</div>
</a>
</li>
<li>
<a href="javascript:;" class="default">
<span class="num">1</span>

<div class="progress">
<div class="progress-inner"></div>
</div>
<span class="title">忍者必须死2 新版本</span>
</a>
<a href="javascript:;" class="hover">
<div class="mask"></div>
<img src="http://nie.163.com/banner/13v1/nie_rz20140703.jpg">

<div class="content">
<p>忍者必须死2 新版本</p>
<span>查看详情<i></i></span>
</div>
</a>
</li>
<li>
<a href="javascript:;" class="default">
<span class="num">1</span>

<div class="progress">
<div class="progress-inner"></div>
</div>
<span class="title">影之刃 终极封测</span>
</a>
<a href="javascript:;" class="hover">
<div class="mask"></div>
<img src="http://nie.163.com/banner/13v1/nie_yzr0616.jpg">

<div class="content">
<p>影之刃 终极封测</p>
<span>查看详情<i></i></span>
</div>
</a>
</li>

</ul>
<ul class="center-slide-res-nav">
<li class="on"><a href="javascript"></a></li>
<li><a href="javascript"></a></li>
<li><a href="javascript"></a></li>
<li><a href="javascript"></a></li>
<li><a href="javascript"></a></li>
</ul>
</section>
时间: 2024-11-10 01:05:59

网易游戏js-滚动支持自适应的相关文章

网易游戏WEB前端开发面试经历

过年后开始各大公司春招了,这时候学生涌入市场,特别是大型的互联网公司更受众多学生的欢迎.然后我在工作之余也投了一下简历,毕竟那么多大公司都在招,错过也不好.就算不进,积累下面经还是不错的,然后知道自己有哪些不足,还有时间弥补. 没想到投了一两天就收到网易游戏的web前端实习的面试,然后只有一两天准备,我也就赶忙看了下面经,复习下javascript.css.html的基础.不过面试过程还是被虐了.唉 网易的环境很好,一进去就有一种很香的淡淡的味道,然后在今天那么热的情况下,开着空调,总是能让浮躁

人人,金山西山居,腾讯互娱,微信,网易游戏offer及面经

转自:http://www.itmian4.com/forum.php?mod=viewthread&tid=3985 首先感谢师兄在两年前发的贴([天道酬勤] 腾讯.百度.网易游戏.华为Offer及笔经面经 ),这篇文章对我帮助很大. 我写这篇文章一是为了感谢这位同是华南理工但素未谋面的师兄,给我推荐这篇文章的炳爷,以及为我解决难题的浩子,羊兄给的项目帮助,洁洁的理解,王兄提供的两个月免费住宿,以及互娱的BOSS,leader,金山的朱先生等人对我择业的帮助,以及所有直接间接帮助过我的人.二是

【个人总结】写在网易游戏和阿里实习前

阿里,三次技术电面 + HR 电面,offer. 网易 cc 语音 TTT 计划,霸笔 + 两次技术面试 + hr 面,offer. 微信,笔试+面试+笔试+总监面,被总监斩了... CVTE,hr 邀请,笔试 + 技术面 + hr 面,offer. 网易游戏,笔试 + 两轮技术面(每轮两个面试官面一个小时),offer. 腾讯 sng 事业群,笔试 + 两轮技术面 + hr 面,offer. 为了留住各位童鞋的脚步,我前面的铺垫做得不错吧,够标题党吧....这年头为了点击量也是蛮拼的....拿

JS不支持正则中的负向零宽断言

今天在项目中用到了正则表达式,并且需要用负向零宽断言 (?<=exp) 进行筛选,结果运行时报 Invalid group 错,一开始以为是自己很久没用表达式写错了,查阅了一下正则语法后发现并没有写错. 到网上一搜才发现,JS不支持负向的 (?<=exp) 和 (?<!exp),只支持正向的(?=exp) 和 (?!exp).

JS滚动

JS滚动页面到某一位置时触发指定事件能够增强用户体验或是提高性能,其中使用最多的场景是加载更多,当鼠标滚动至页面下方时,自动加载下一页的内容.另一个常用的场景是当用户滚动至页面某一地方时,页面会给出提示或是将某些重要信息或按钮显示出来.实现这些效果的关键是要区分clientHeight.scrollHeight.offsetHeight属性的区别.刚好最近项目中有用到过这些概念,今天就抽空整理下关于这几个属性的区别. 1.概念 clientHeight/clientWidth 指元素可见区域的高

2048小游戏-JS实现(BUG调试中)

刚刚学习JS的菜鸟,游戏没有实现滑动效果.希望有前辈能指点一下······ 定义的主要方法: 1.fuzhi()生成一对随机数,然后根据这对随机数取得一个随机单元格,先判断其是否为空,不为空,对其进行赋值为2的操作:为空,则再次调用fuzhi(). 2.secai()遍历表格,根据单元格的数值改变单元格的背景颜色. 3.score()遍历单元格,计算实时总得分. 4.keyDown()主要方法,根据用户按上下左右键来进行不同的数值相加.消除动作.这一段代码写得很冗余····· 1 <!DOCTY

C++面经 阿里,网易游戏,腾讯

作者:Simon_链接:https://www.nowcoder.com/discuss/23512?type=2&order=0&pos=12&page=2来源:牛客网 2017暑期实习C++面经(阿里,网易游戏,腾讯等) 精 Simon_ 编辑于 2017-04-22 09:51:15 回复25 | 赞 42 | 浏览16520 2017暑期实习C++面经(阿里,网易游戏,腾讯等) 精 对自己一个月以来的内推实习做个总结.希望大家也能找到一个好实习. :D 主要是C++研发内推

消除类游戏(js版)

原文:消除类游戏(js版) 最近一直在玩一款消灭星星的消除类游戏,周末无聊就用js也写了一遍,感觉玩比写还困难一直玩不到10000分.废话不多说直接上源码. 效果图(ps 页面有点难看木有美工) 代码总共456行,未经过严格测试 1 <html lang="zh-CN"> 2 <head> 3 <meta charset="utf-8"> 4 <meta http-equiv="X-UA-Compatible&qu

九宫格----记网易游戏2015年研发类笔试题

最近一直在找工作,昨天参加了网易游戏的研发类笔试,题量比较大,大题有6个. 1.最小字典序字符串, 2.递归绘图函数转非递归 3.游戏编程中常用的数据结构4叉树,有三问,一问是写出如何判断点在矩形中和判断两矩形是否相交,第二问是写创建四叉树的实现,第三问是如何根据已知的矩形块,在四叉树中寻找包含的物体. 4.KD树,英文题,没怎么看,第一问问给出的一个算法的复杂度,并分析:第二问是自己实现算法(没怎么看) 5.求带权二叉树的最长路径,权值可以为负值 6.九宫格,就是手机手势密码.有三问,一问是如