jquery/js固定边栏滚动效果

jquery实现固定滚动特效

<head>

<meta charset="UTF-8">
<title>jquery实现固定右侧边栏滚动特效</title>
<style>
#slide-scroll{
float: left;
width:70%;
background: palegreen;
height: 2000px;
}
#slide-fixed{
float: right;
width:30%;
background: plum;
height: 1000px;
}
</style>
</head>
<body>
<div id="slide-scroll" ></div>
<div id="slide-fixed"></div>
</body>
<script src="https://code.jquery.com/jquery.js"></script>
<script>
var jWindow=$(window);//缓存window对象
jWindow.scroll(function(){//监听window滚动事件
var scrollHeight=jWindow.scrollTop();//滚动高度
var screenHeight=jWindow.height();//window可见区域高度
var slideHeight=$("#slide-fixed").height();//右侧边栏高度
if(scrollHeight+screenHeight>slideHeight){
$("#slide-fixed").css({
"position":"fixed",
"right":0,
"top":-(slideHeight-screenHeight)+"px"
});
}else{
$("#slide-fixed").css({
"position":"static"
});   
}
});
window.οnlοad=function(){//触发window滚动监听事件
jWindow.trigger("scroll");
};
jWindow.resize(function(){//触发window滚动监听事件
jWindow.trigger("scroll");
});

</script>


js实现固定滚动特效

<head>
<meta charset="UTF-8">
<title>javascript实现固定右侧边栏滚动特效</title>
<style>
#slide-scroll{
float: left;
width:70%;
background: palegreen;
height: 2000px;
}
#slide-fixed{
float: right;
width:30%;
background: plum;
height: 1000px;
}
</style>
</head>
<body>
<div id="slide-scroll" ></div>
<div id="slide-fixed"></div>
</body>
<script>
 /*获取元素的dom引用*/
var $ = function(id){
return document.getElementById(id);
}
 
/*事件绑定函数*/
var addEvent = function(obj,event,fn){
if(obj.addEventListener){/*w3c标准方法*/
obj.addEventListener(event,fn,false);//非ie浏览器事件模型有2中,捕获事件,冒泡事件(默认false,ie浏览器只支持冒泡模型)
}else if(obj.attachEvent){//ie浏览器
obj.attachEvent("on"+event,fn);//ie浏览器只支持冒泡模型
}
}

var sideDom=$("slide-fixed");
var scrollEvent=function(){
var sideHeight=sideDom.offsetHeight;
var screenHeight=document.documentElement.clientHeight||document.body.clientHeight;
var scrollHeight=document.documentElement.scrollTop||document.body.scrollTop;
if(scrollHeight+screenHeight>sideHeight){
sideDom.style.cssText="position:fixed;right:0px;top:"+(screenHeight-sideHeight)+"px";
}else{
sideDom.style.position="static";
}
}
addEvent(window,"scroll",function(){
scrollEvent();
});
addEvent(window,"resize",function(){
scrollEvent();
})
</script>



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值