jq模拟滚动条


  最近工作上用到很多自自定滚动,自己索性就用jq封装了一个插件,以方便自己偷懒使用

$.fn.scrollList=function(options){
var defaults={
container:$('#createProduct_popDiv1'),//父元素容器
containerP:$('#createProduct_popDiv2'),//绝对定位容器
containerScroll:$('#createProduct_popDiv3')//滚动条容器

};
var options=$.extend({},defaults,options||{});
var h=options.container.innerHeight(),h2=options.containerP.innerHeight(),per,h3,dray=false;

if(h2<h) {
options.containerScroll.hide();
$(document).unbind("mouseover").unbind("mouseup");
return;
}
per=h/h2;

h3=Math.floor(per*h);
if(h3 <= 4){
h3 = 4;
}
var movePer = (h2 -h) / (h - h3);

options.containerScroll.css('height',h3+'px')
var currentY=0,posY=options.containerP.css('top'),dis=0;
//滚动条开始移动
options.containerScroll.mousedown(function(e){

dray=true;
currentY=e.pageY;
}).css('cursor','pointer');
$(document).mousemove(function(e){
if(dray){
dis=e.pageY-currentY;
var nowY=dis+parseInt(posY);
if(nowY<=0){
nowY=0;
}else if(nowY >= h-h3){
nowY=h-h3;

}

options.containerScroll.css('top',nowY+'px');
//比例
options.containerP.css('top','-'+(nowY * movePer )+'px');

}
});
$(document).mouseup(function(e){
dray=false;
posY=options.containerScroll.css('top');
});
}

  这个是dom文档

 <div class="createProduct_popLeft rel" id="createProduct_popDiv1">
<div class="createProduct_scroll" id="createProduct_popDiv3">

</div>
<div class="createProduct_div15" id="createProduct_popDiv2">

这里是内容

 

 

</div>
</div>

<style type="text/css">

.createProduct_popLeft{ width:500px; height:500px; overflow:hide;border:1px solid #ccc;}

.createProduct_scroll{position:absolute;right:0;top:0;width:4px;}

 

.createProduct_div15{position:absolute;top:0;left:0; backgrund:red;

}

</style>

好了,最后是怎样调用该插件了

<script type="text/javascript">

$(document).scrollList({

container:$('#createProduct_popDiv1'),//父元素容器
containerP:$('#createProduct_popDiv2'),//绝对定位容器
containerScroll:$('#createProduct_popDiv3')//滚动条容器

 

});

</script>

 

转载于:https://www.cnblogs.com/jane2013/p/3249825.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值