页面滚动条滚动后返回事件----JS

这两天小码哥在做页面的时候,其中有一个效果是想让右侧的一个导航随着页面向下滚动而由原来的固定(position:absolute;)模式改为悬浮(position:fixed;)模式。我当时就想到了返回函数。可是依照自己的想法写了几个JS都没成功,我在想肯定是我用错了方法了。后来经过偶一再查证,终于解决了该问题,,,下面是想分享给大家的代码。重点其实就是那段JS。当然,其中原理还得是靠自己领悟了。哈哈

代码:

<!doctype html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<title>利用锚点点击跳转</title>

<style type="text/css">

.content{width:1000px;margin:0 auto;}

.cont{height:500px;}

.cont1{background:#666666;}

.cont2{background:#999999;}

.cont3{background:#CCCCCC;}

.cont4{background:#FF0000;}

.cont5{background:#6699CC;}

.cont h4{font-size:16px;}

.pop1{position:absolute;top:800px;right:50px;width:100px;height:240px;border:1px #00FFFF solid;margin:0;padding:0;list-style:none;}

.pop1 li{width:100px;}

.pop1 li a{display:block;width:100px;height:40px;line-height:40px;text-align:center;font-size:14px;background:#ccc;color:#fff;text-decoration:none;}

.pop1 li a:hover{background:#6699CC;color:#00FFCC;}

.pop{width:100px;height:240px;border:1px #00FFFF solid;position:fixed;margin:0;padding:0;top:50%;margin-top:-396px;right:50px;list-style:none;}

.pop li{width:100px;}

.pop li a{display:block;width:100px;height:40px;line-height:40px;text-align:center;font-size:14px;background:#ccc;color:#fff;text-decoration:none;}

.pop li a:hover{background:#6699CC;color:#00FFCC;}

</style>

</head>

<body id="top">

<div class="content">

<div class="cont1 cont"><h4 id="5_1">周一</h4></div><!--cont1-->

<div class="cont2 cont"><h4 id="5_2">周二</h4></div><!--cont2-->

<div class="cont3 cont"><h4 id="5_3">周三</h4></div><!--cont3-->

<div class="cont4 cont"><h4 id="5_4">周四</h4></div><!--cont4-->

<div class="cont5 cont"><h4 id="5_5">周五</h4></div><!--cont5-->

</div><!--content-->

<ul id="popup" class="pop1">

<li class="lis"><a href="#5_1" title="">星期一</a></li>

<li class="lis"><a href="#5_2" title="">星期二</a></li>

<li class="lis"><a href="#5_3" title="">星期三</a></li>

<li class="lis"><a href="#5_4" title="">星期四</a></li>

<li class="lis"><a href="#5_5" title="">星期五</a></li>

<li><a class="toTop" href="#top" title="">Top</a></li>

</ul><!--.pop-->

<script src="js/jquery1.11.1.min.js" type="text/javascript"></script>

<script type="text/javascript">

$(document).ready(function(){

$("#popup .lis a").click(function() {

$("html, body").animate({

scrollTop: $($(this).attr("href")).offset().top + "px"

}, 500);

return false;

});

$(document).scroll(function(){

if($(window).scrollTop()>800){

$(‘#popup‘).removeClass(‘pop1‘).addClass(‘pop‘);

}else{

$(‘#popup‘).removeClass(‘pop‘).addClass(‘pop1‘);

};

});

});

</script>

</body>

</html>

在此,小码哥还想提醒大家,注意JS中的$(document).scroll(function(){});方法。

时间: 2024-08-11 03:23:40

页面滚动条滚动后返回事件----JS的相关文章

页面跳转后样式丢失js失效

  问题描述: 用ajax跳转的时候,从a.html跳转到b.html后,b.html的css以及js都失效了. 解决办法: 将当前页面需要用到的css以及js放在<page>div内. 原理: 由于jqm默认的ajax跳转的时候,只会把b.html中<page>内的内容加载进dom,而<page>外的代码都不会加载,所以导致在<page>外的js和css都失效了.还要设置data-ajax=false

元素focus页面不滚动不定位的JS处理

有时候我们希望元素被focus的时候页面不发生滚动,例如我们点击一个按钮打开一个弹框,此时点击弹框中的关闭按钮隐藏弹框后,希望键盘的焦点回到之前的按钮上,我们就会执行如下JavaScript代码: button.focus(); 但是有时候会带来另外一个比较严重的体验问题,那就是如果弹框显示之后我们页面发生了滚动,原本点击的按钮跑到了屏幕显示区域之外,这个时候,按钮再次focus的时候就会触发按钮元素scrollIntoView重定位,浏览器发生滚动,表现为突然的跳动 如果想要聚焦同时不发生滚动

jQuery判断页面滚动条滚动方向

$(window).scroll(function(){                var before = $(window).scrollTop();                $(window).scroll(function() {                    var after = $(window).scrollTop();                    if (before<after) {                        console.l

JS 侧栏导航点击定位页面内容位置及滚动条滚动改变导航元素对应状态

近来,小码哥应公司需求方要求,要在未来一个专题页面中加入一个效果:即,侧栏导航点击实现页面内容部分运动到相应位置,以及随着body滚动条滚动使导航按钮效果和页面相应内容对应上的一个效果.起初小码哥做的时候,只实现了点击导航按钮让页面相应的内容定位到和按钮相应的地方(在此可以查看小码哥先前写的关于锚点的文章):而随滚动条实现按钮和内容相对应的效果没有做出来,由于项目专题的时限问题,小码哥借鉴了网上一个案例,将其套在自己的页面就够里,实现了想要的效果. 废话不多说了,直接上码吧,,,,,,,,,,,

当滚动条滚动到页面底部自动加载增加内容的js代码

这篇文章主要介绍了如何使用javscript实现滚动条滚动到页面底部自动加载增加页面内容,需要的朋友可以参考下..1,注册页面滚动事件,window.onscroll = function(){ }; 2,相关获取页面高度.滚动条位置.文档高度的函数: 复制代码 代码如下://获取滚动条当前的位置 function getScrollTop() { var scrollTop = 0; if (document.documentElement && document.documentEle

解决移动端页面滚动后不触发touchend事件

解决移动端页面滚动后不触发touchend事件 问题 在移动端页面进行优化时,一般使用touch事件替代鼠标相关事件.用的较多的是使用touchend事件替代PC端的click和mouseup事件. 可是,touchend事件在页面滚动时有个问题.在滚动完毕后,假设当前触点的位置所指的元素绑定了touchend事件,这时便会触发该元素的touchend事件,造成误操作. 解决方法 解决方法非常easy.就是在页面滚动时停止touchend事件冒泡.这样就能够防止触发touchend事件. 用法

js监听网页页面滑动滚动事件,实现导航栏自动显示或隐藏

/** * 页面滑动滚动事件 * @param e *///0为隐藏,1为显示var s = 1; function scrollFunc(e) { // e存在就用e不存在就用windon.event e = e || window.event;// 先判断是什么浏览器 if (e.wheelDelta) { // 浏览器IE,谷歌 if (e.wheelDelta > 0) {//当滑轮向上滚动时// console.log("滑轮向上滚动"); if (s == 0) {

js防抖和节流优化浏览器滚动条滚动到最下面时加载更多数据

防抖和节流,主要是用来防止过于平凡的执行某个操作,如浏览器窗口变化执行某个操作,监听某个input输入框keyup变化,瀑布流布局时Y轴滚动,图片加载. js函数的防抖 经过一段事件才执行某个操作,如果时间内又执行了该操作则延长时间重新开始计算 /* 不做处理input触发keyup事件 */ /* 输入快的话会出现输出结果多次重复 */ window.onload = function () { let obj = document.getElementById('input') obj.ad

jquery判断页面滚动条(scroll)是上滚还是下滚,且是否滚动到头部或者底部

项目背景 webtouch(webapp)页面,防苹果手机safari浏览器,网上滑动,底部导航消失,滑动到底部又出现.向下滑动,底部导航出现. 遇到问题 1.我一开始用swipeup和swipedown来做,发现因为有滚动条,不会触发.因此只能判断滚动条是上滚下滚等.关于手机手势,后面的文章会介绍,欢迎关注! 2.通过上滚下滚来让底部导航显示或者因此,安卓上面的浏览器都可以,但是苹果safari会一闪一闪,原因是苹果safari自动有个弹跳效果,导致事件重复执行,解决办法是给上滚下滚一个距离,