• 故事中美两军举行人道主义救援减灾联合实兵演练 2019-08-13
  • 掌握新思想 开拓新实践——深入贯彻落实党的十九大精神系列述评之二 2019-07-30
  • “草原英雄小姐妹”走进山城 2019-07-01
  • 高清:里约奥运会奖牌曝光 大部分由再生材料制成 2019-06-27
  • 在楼主大谈共产主义分配的时候,希望楼主先说明一下对马克思关于共产主义基本原则的理解。一个社会如果仍然存在“按劳动分配”,怎么会是“每一个个人的全面而自由的发展” 2019-06-25
  • 河北法院:打造互联网+诉非衔接的人民法庭工作新机制 2019-06-25
  • 芯片是汽车产业发展的基石  专家呼吁建立"汽车芯片智库" 2019-06-13
  • “高深文学创作回顾研讨会”在北京举行 2019-06-13
  • 江苏专项督查基础教育问题 择校热、大班额成重点 2019-06-08
  • 14599元!索尼A7M3发布:续航翻番、支持4K视频 2019-06-08
  • 首页 春城壹网 七彩云南 一网天下 2019-05-22
  • QFII政策调整引增量资金入场 “成长+大消费”或成布局重点 2019-05-22
  • 密印“农禅”:何以在蛮荒之地举起文明火把(图) 2019-05-18
  • 20180531 袁隆平:海水稻打破纪录,杂交稻走向全球 2019-05-17
  • 晋城:八项重点打好水污染防治攻坚战 2019-05-15
  • 欢迎访问

    云南11选5前二组选走势图:云南鼎浩信息技术有限公司官方网站,云南网站建设诚信品牌!

    DING HAO COLUMN 鼎浩专栏

    鼎浩的一些分享
    Sharing from Ding Hao

    超酷的固定菜单页面滚动效果

    来源:云南11选五走势图500期     2013年07月02日16:02
    字号:T|T

    云南11选五走势图500期 www.a-mcl.com 在一个单页面设置一个主菜单,当页面滚动时主菜单位置固定在页面窗口中不动,或左或右,或上或下。当单击菜单项时,页面滚动到菜单对应的内容区,当页面滚动到预定内容位置时,对应的菜单项变为当前选中样式。

    此效果可以应用在一些内容比较长的单页设计,本文将介绍使用JjQuery和css来实现这一效果,demo中分别有菜单居左、居右及底部效果,点击demo看效果:

    查看演示DEMO 下载源码

    HTML

    本例html来自本站文章:ScrollTo:平滑滚动到页面指定位置中的DEMO,我们在页面中的#main内放置一个主菜单ul.nav,并对应每个菜单项的内容区,我们会发现内容区的id对应菜单项的class,接下来你会发现它的作用。

    产品展示

    ...

    新闻中心

    ...

    服务支持

    ...

    联系我们

    ...

    人才招聘

    ...

    CSS

    使用CSS固定菜单,以及设置菜单样式,和内容区。

    .nav{width:160px; position:fixed; margin-left:-170px; top:20%; z-index:1999; 
    background:#f0f0f0; border: 1px solid #ccc;-webkit-border-radius: 6px;
    -moz-border-radius: 6px;border-radius: 6px;-webkit-box-shadow: 
    0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);}
    .nav li{height:36px; line-height:36px; border-bottom:1px solid #d3d3d3; 
    text-align:center; cursor:pointer}
    .nav li:last-child{border-bottom:none}
    .nav li a{display:block; width:98%; height:34px;font-size:16px;}
    .nav li a:hover{background:#f9f9f9; text-decoration:none}
    .nav li a.cur{background:#ffc}
    .box{height:600px; margin: 0 10px}

    上面的代码使用position:fixed将菜单位置固定在内容区的左侧:demo1

    jQuery

    本例基于jQuery,所以老惯例,先载入jquery库,然后写代码:

    $(function(){
    	$(".nav li a").click(function() {
    		var el = $(this).attr('class');
         	$('html, body').animate({
             	scrollTop: $("#"+el).offset().top
         	}, 300);
            //切换菜单样式
            $(this).addClass("cur").parent().siblings().find("a").removeClass("cur");
         });
    });

    当单击菜单项时,使用jQuery自定义动画函数animate(),将页面对应的区域(id对应了菜单项的class),滚动到浏览器顶端,并且将菜单项的样式切换为当前选中状态。

    如果你喜欢用不同的滚动效果,请参照本站文章:jQuery Easing 动画效果扩展。

    其实到这里,已经实现了固定菜单,和点击菜单滚动到指定内容位置的效果,但是有一点,当我们不点击菜单,而是滚动页面时,页面到达了菜单项对应的位置,我们需要菜单项也做出对应的反应,将对应的菜单项设置为当前选中项,这样就可以告诉用户,您正在浏览的对应的是页面哪个节点的内容。

    我们先获取内容区每个菜单对应的节点与页面顶部的偏移量,然后当页面滚动scroll时,获取页面滚动条的便宜距离scroH,然后将这两个值比较,设置对应的菜单项为选中状态。

    $(function(){
    	...
        var pro_top = $("#pro").offset().top; //距页顶偏移量
    	var news_top = $("#news").offset().top;
    	var ser_top = $("#ser").offset().top;
    	var con_top = $("#con").offset().top;
    	var job_top = $("#job").offset().top;
    
    	$(window).scroll(function(){//滚动页面
    		var scroH = $(this).scrollTop(); //滚动条位置
    		if(scroH>=job_top){
    			set_cur(".job");//设置状态
    		}else if(scroH>=con_top){
    			set_cur(".con");
    		}else if(scroH>=ser_top){
    			set_cur(".ser");
    		}else if(scroH>=news_top){
    			set_cur(".news");
    		}else if(scroH>=pro_top){
    			set_cur(".pro");
    		}
    	});
        ...
    });

    自定义函数set_cur()用于设置当前菜单状态:

    function set_cur(n){
    	if($(".nav a").hasClass("cur")){
    		$(".nav a").removeClass("cur");
    	}
    	$(".nav a"+n).addClass("cur");
    }

    好了,现在滚动页面切换样式也实现了,但是还有一个问题,当浏览器窗口大小变化时,菜单位置也应该一起变化,浏览器窗口宽度大于内容区和主菜单宽度时,保持主菜单一直依靠在内容区左侧。

    $(window).resize(function(){//窗口大小变化
      navpos();
    });
    //根据宽度设置样式
    function navpos(){
    	var offset = $("#main").offset().left;
    	var nav_w = $(".nav").outerWidth();
    	var left = offset-nav_w;
    	
    	if(left>10){
    		$(".nav").css("margin-left","-170px");
    	}else{
    		$(".nav").css("margin-left",-(160+left)+"px");
    	}
    }

    当然,我们也可以在页面加载完成时也调用navpos(),初始化菜单位置。

    $(function(){
    	navpos();
    	...
    });

    最后,还剩一个问题,我们知道老掉牙的IE6不支持position:fixed,这样在ie6下菜单不会固定滚动。解决办法是有的,可以通过css或者javascript来处理兼容性的问题。作者跟广大WEB开发者一样,痛恨IE6,这个问题留给喜欢捣腾的朋友吧,helloweba.com感谢您的关注。

    客服中心
    点击进行在线咨询

    QQ咨询 咨询QQ:79929313 咨询QQ:88139574 咨询QQ:122790803

    咨询热线:0871-63399840

    客服热线:0871-63523332

    客服中心 客服中心
  • 故事中美两军举行人道主义救援减灾联合实兵演练 2019-08-13
  • 掌握新思想 开拓新实践——深入贯彻落实党的十九大精神系列述评之二 2019-07-30
  • “草原英雄小姐妹”走进山城 2019-07-01
  • 高清:里约奥运会奖牌曝光 大部分由再生材料制成 2019-06-27
  • 在楼主大谈共产主义分配的时候,希望楼主先说明一下对马克思关于共产主义基本原则的理解。一个社会如果仍然存在“按劳动分配”,怎么会是“每一个个人的全面而自由的发展” 2019-06-25
  • 河北法院:打造互联网+诉非衔接的人民法庭工作新机制 2019-06-25
  • 芯片是汽车产业发展的基石  专家呼吁建立"汽车芯片智库" 2019-06-13
  • “高深文学创作回顾研讨会”在北京举行 2019-06-13
  • 江苏专项督查基础教育问题 择校热、大班额成重点 2019-06-08
  • 14599元!索尼A7M3发布:续航翻番、支持4K视频 2019-06-08
  • 首页 春城壹网 七彩云南 一网天下 2019-05-22
  • QFII政策调整引增量资金入场 “成长+大消费”或成布局重点 2019-05-22
  • 密印“农禅”:何以在蛮荒之地举起文明火把(图) 2019-05-18
  • 20180531 袁隆平:海水稻打破纪录,杂交稻走向全球 2019-05-17
  • 晋城:八项重点打好水污染防治攻坚战 2019-05-15
  • 牛牛是怎样的 湖南动物前三组走势图 南粤风釆26选5玩法 江苏新11选5 辽宁35选7风采走势图 中国竞彩网首页胜平负 贵州11选5走势图删除 陕西11选5玩法技巧 138期双色球历史记录 天津时时彩开奖时间 香港赛马会网址 山东十一选五开奖走势 六合图库彩色图片 历史比较法 江西快三下注平台