如何使用jQuery消除网页的滚动条
发布网友
发布时间:2023-08-10 00:43
我来回答
共1个回答
热心网友
时间:2023-08-10 03:12
这次给大家带来如何使用jQuery 消除网页的滚动条,使用jQuery 消除网页的滚动条的注意事项有哪些,下面就是实战案例,一起来看一下。
网页有些时候需要能滚动的效果,但是不想要滚动条,我就遇到了这样的需求。自己用jq写了一个垂直滚动条。
纯css也可以实现
.box::-webkit-scrollbar{display:none}但是edge和Firefox不兼容,自己想了一下只要监听滚轮事件,用jq写应该很简单,所以就自己写了一下。
原理:需要两个div,第一个就命名为box-wrap吧,它是一个外层的包裹,由于是垂直滚动,所以要固定高度,然后设置overflow:hidden,这样竖直方向超过高度的部分就会被隐藏
第二个div就是内容需要滚动的div,命名为box,采用绝对定位,在监听到鼠标滚轮事件后根据滚轮方向相对移动
css代码
#box-wrap{
position: relative;
width: 100% ;
height: 500px ;
overflow: hidden;
}
#box{
position: absolute;
width: 100% ;
height: 1500px ;
background: linear-gradient(blue,white) ;
}为了能演示效果,里面的盒子我写成了定高,并且让背景渐变,正常来讲可以高度auto让文字撑开就行了,样式的关键在于让父类relative之后再让子类absolute,这样子类就可以相对父类移动
js代码
function initScroll(){
//js模拟垂直滚轮滑动
var scrollEle = $('#box') ;
var scrollWrap = $('#box-wrap') ;
var scrollSpd = 20 ;//滚轮滚动的速度
var Max_dist = scrollEle.height()-scrollWrap.height() ;//两个组件底边之间的最大距离
if(Max_dist<=0){
return ;
}
scrollEle.css('bottom',-Max_dist) ;
scrollEle.bind('mousewheel',function(event){
var step = scrollSpd ;
event.preventDefault() ;
event = event.originalEvent ;
//兼容firefox
event.delta = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;
var tempPos = parseInt(scrollEle.css('bottom')) ;
console.log(tempPos) ;
if(event.delta>0){
if(tempPos>(-Max_dist)){
tempPos-step>(-Max_dist)? tempPos = tempPos-step : tempPos = -Max_dist ;
}
}else{
if(tempPos<0){
tempPos+step<0? tempPos = tempPos+step : tempPos = 0 ;
}
}
//console.log(tempPos) ;
scrollEle.css('bottom',tempPos) ;
});
}
initScroll() ;主要就是监听滚轮事件,从而判断滚轮的方向
event.delta = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;这句是为了兼容火狐,其他浏览器都是属性名称为wheelDelta,值表示为120向上,-120向下,火狐是属性名称为detail,值表示为3向下,-3向上
每次触发滚轮事件都会获取子类的位置,然后根据滚轮的方向调整当前位置,注意判断一下边界就好了
demo代码
<html>
<head>
<style>
#box-wrap{
position: relative;
width: 100% ;
height: 500px ;
overflow: hidden;
}
#box{
position: absolute;
width: 100% ;
height: 1500px ;
background: linear-gradient(blue,white) ;
}
</style>
<script src="./jquery-1.11.3.min.js"></script>
</head>
<body>
<div id="box-wrap">
<div id="box"></div>
</div>
</body>
<script type="text/javascript">
function initScroll(){
//js模拟垂直滚轮滑动
var scrollEle = $('#box') ;
var scrollWrap = $('#box-wrap') ;
var scrollSpd = 20 ;//滚轮滚动的速度
var Max_dist = scrollEle.height()-scrollWrap.height() ;//两个组件底边之间的最大距离
if(Max_dist<=0){
return ;
}
scrollEle.css('bottom',-Max_dist) ;
scrollEle.bind('mousewheel',function(event){
var step = scrollSpd ;
event.preventDefault() ;
event = event.originalEvent ;
//兼容firefox
event.delta = (event.wheelDelta) ? event.wheelDelta / 120 : -(event.detail || 0) / 3;
var tempPos = parseInt(scrollEle.css('bottom')) ;
console.log(tempPos) ;
if(event.delta>0){
if(tempPos>(-Max_dist)){
tempPos-step>(-Max_dist)? tempPos = tempPos-step : tempPos = -Max_dist ;
}
}else{
if(tempPos<0){
tempPos+step<0? tempPos = tempPos+step : tempPos = 0 ;
}
}
//console.log(tempPos) ;
scrollEle.css('bottom',tempPos) ;
});
}
initScroll() ;
</script>
</html>相信看了这些案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
相关阅读:
怎么给span标记样式设置width属性
html与xhtml和xml有什么区别
iframe的子页面怎样操作父页屏蔽页面弹出层效果
HTML中定义多个class属性无效
怎样用按钮触发实现背景色的闪烁
jquery怎么去掉滚动条还可以滚动
试试用2层DIV. 外面那层写个固定的width 和height,overfllow:Hidden; 然后里面的那个也需要固定的width(约宽于父DIV的宽度.——把滚动条顶出去Hidden掉)和height(同父级DIV).overfllow:auto;.这样应该可以吧.
html 实现网页单屏显示 满屏显示,不出现滚动条。
1、打开html开发工具,新建一个html代码页面,在html代码页面输入大量的文本内容,确保在浏览器上能有滚动条出现。2、引入一个jquery.js库。在title标签后面创建一个script标签,然后引入jquery.js文件。3、新建一个script标签,在这个标签里面创建使用$(window).scroll()监听滚动条滚动事件(案例中判断当滚...
Jquery打开模式窗口,网页右边和下边都出现了滚动条。请问如何解决?
设一下baody的onscoll="none"
JQuery隐藏html的滚动条
html { _overflow-x:auto;_overflow-y:hidden;} /*用来隐藏html的滚动条*/ body { _margin:0; /* 必须 */ _height:100%; /* 必须 */ _overflow-y:auto;/* 必须 */ } 在属性前面加个_ 如果是IE6,就执行这个,否则就不行了 ...
jquery 如何禁用滚动条
给一个元素的css,overflow设置成hidden的就可以了 啊。例如$("#test").css("overflow","hidden");那就给body加上啊。例如$("body").eq(0)..css("overflow","hidden");
js或者jquery实现div不随滚动条滚动
"div1"); //父divvar max_x = p_div.offsetLeft+p_div.offsetWidth; //父div的右边界var max_y = p_div.offsetTop+p_div.offsetHeight; //父div的下边界window.onscroll = function(){ var c_div = document.getElementById("div2"...
下拉或者上拉浏览器的滚动条会触发jquery的scroll绑定函数,请教一下...
当调整浏览器窗口的大小时,会触发JQuery的resize() 事件……(window).resize(function() { });
如何解决Jquery插件nicescroll在ie8中出现的滚动问题
可以参考:http://nicescroll.areaaperta.com/ nicescroll的兼容性非常强,基本上所有的浏览器都可以使用,但是这么完美的插件还是存在它不足的地方。在ie8上,偶尔会出现这样的情况:页面会随着鼠标箭头的移动而滚动。根据我的个人经验,当你用鼠标按着滚动条上下滑动3s时会出现上述情况,当你再次用鼠标...
jQuery 实现div在窗口滚动条到一定位置后显示并固定位置不动 拉上去后...
1、新建html文档。2、书写hmtl代码。3、书写css代码。* { margin: 0; padding: 0; list-style: none; }img { border: none; }body { font-family: Arial, Helvetica, sans-serif; }。4、书写并添加js代码。 。5、代码整体结构。6、查看效果。
JS或者jquery做 一个div不随滚动条上下移动改变位置的效果,就是div始 ...
不用CSS是行不通的,js或jquery做出的效果,也是使用了css中的相关属性。只不过,使用js或jquery后可以增加更多效果