Javascript 将此代码ID转换为适用于类名
我需要一些溢出滚动元素在一个移动网站和少数版本,例如,安卓不会处理他们 此代码启用触摸滚动:Javascript 将此代码ID转换为适用于类名,javascript,class,Javascript,Class,我需要一些溢出滚动元素在一个移动网站和少数版本,例如,安卓不会处理他们 此代码启用触摸滚动: function touchScroll(id){ if(isTouchDevice()){ //if touch events exist... var el=document.getElementById(id); var scrollStartPos=0; document.ge
function touchScroll(id){
if(isTouchDevice()){ //if touch events exist...
var el=document.getElementById(id);
var scrollStartPos=0;
document.getElementById(id).addEventListener("touchstart", function(event) {
scrollStartPos=this.scrollTop+event.touches[0].pageY;
event.preventDefault();
},false);
document.getElementById(id).addEventListener("touchmove", function(event) {
this.scrollTop=scrollStartPos-event.touches[0].pageY;
event.preventDefault();
},false);
}
}
touchScroll('cHolder');
我对它进行了测试,它对#cHolder有效。但是,我需要如何修改它(我不介意使用jquery语法),使其适用于类?我的布局中有多个这样的容器
有什么想法吗?好吧,您可以用jQuery语法替换
var el=document.getElementById(id)
:
var el = $(id).get(0);
这将实际创建一个jQuery选择器,然后获取DOM对象
然后我建议您将第5行和第9行的document.getElementById(id)
替换为el
然后您可以将任何选择器传递到函数中,它将获得该元素 像这样的事情应该行得通
function touchScroll(id) {
if (isTouchDevice()) { //if touch events exist...
var els = document.getElementsByClassName(id);
var scrollStartPos = 0;
for (var i = 0; i < els.length; i++) {
els[i].addEventListener("touchstart", function (event) {
scrollStartPos = this.scrollTop + event.touches[0].pageY;
event.preventDefault();
}, false);
els[i].addEventListener("touchmove", function (event) {
this.scrollTop = scrollStartPos - event.touches[0].pageY;
event.preventDefault();
}, false);
}
}
}
touchScroll('cHolder');
功能触摸屏(id){
如果(isTouchDevice()){//如果存在触摸事件。。。
var els=document.getElementsByClassName(id);
var scrollStartPos=0;
对于(变量i=0;i
是什么让您认为OP使用jQuery的?“我不介意使用jquery语法”可能意味着任何tbh。此外,这并不是解释如何按类选择元素。谢谢!虽然我刚刚意识到这不适用于水平滚动。。。无论如何谢谢你!