document.documentElement.style.overflow='hidden'
document.body.style.overflow='hidden'//手机版设置这个。
如果设置了如上,页面的滚动条将会消失,此时鼠标滚轮失效。
<meta charset="utf-8">
例如:
需求:导航栏实现横向滑动,适应移动端,当滑动到最后时,图标隐藏
css实现滑动效果:
style样式:
.scrollContainer{overflow:auto}
.box{
display:box
display:-webkit-box//也可使用display:flex
height:"40px"
}
.box span{
display: block !important//这是重点!!
width:"60px",
height: "40px"
line-height: "40px"
text-align:center
}
<div class="scrollContainer">
<div class="box">
<span>HT</span>
<span>CTC</span>
<span>SLT</span>
<span>AET</span>
<span>LET</span>
</div>
</div>
js中实现滑动效果:
思路:
当(滑动的距离=总滑动宽度-可视宽度 || 滑动的距离>总滑动宽度-可视宽度)时,隐藏图标,相反显示
domElement.scrollLeft(滑动距离)
domElement.scrollWidth(总滑动宽度-可视宽度)
domElement.clientWidth(可视宽度)
//html5 新增 touch 事件//禁用手机默认的触屏滚动行为
document.addEventListener('touchmove', function(event) {
event.preventDefault()
}, false)
//touchstart事件
function touchSatrtFunc(evt) {
try {
//evt.preventDefault() //阻止触摸时浏览器的缩放、滚动条滚动等
var touch = evt.touches[0] //获取第一个触点
var x = Number(touch.pageX) //页面触点X坐标
var y = Number(touch.pageY) //页面触点Y坐标
//记录触点初始位置
startX = x
startY = y
} catch (e) {
alert('touchSatrtFunc:' + e.message)
}
}
//touchmove事件,这个事件无法获取坐标
function touchMoveFunc(evt) {
try {
//evt.preventDefault() //阻止触摸时浏览器的缩放、滚动条滚动等
var touch = evt.touches[0] //获取第一个触点
var x = Number(touch.pageX) //页面触点X坐标
var y = Number(touch.pageY) //页面触点Y坐标
//document.getElementById("version").innerHTML = "原:"+startY+" "+"现:"+y
//判断滑动方向
if (y - startY > 100) {
swipeDown()
} else if(y - startY < -100){
swipeUp()
}
} catch (e) {
alert('touchMoveFunc:' + e.message)
}
}
//touchend事件
function touchEndFunc(evt) {
try {
//evt.preventDefault() //阻止触摸时浏览器的缩放、滚动条滚动等
} catch (e) {
alert('touchEndFunc:' + e.message)
}
}
//绑定事件
function bindEvent() {
document.addEventListener('touchstart', touchSatrtFunc, false)
document.addEventListener('touchmove', touchMoveFunc, false)
document.addEventListener('touchend', touchEndFunc, false)
}
//判断是否支持触摸事件
function isTouchDevice() {
//document.getElementById("version").innerHTML = navigator.appVersion
try {
document.createEvent("TouchEvent")
//alert("支持TouchEvent事件!")
bindEvent() //绑定事件
} catch (e) {
alert("不支持TouchEvent事件!" + e.message)
}
}