2
关注
1470
浏览

添加touchEvents进行导航

为什么被折叠? 0 个回复被折叠
77粑粑 未验证用户 用户来自于: 广东省
2020-09-16 00:35

您需要在CSS中修改这两个:一是

#center.cslide-up { 
    top: 100vh; 
} 

#center.cslide-left { 
    left: 100vw; 
} 
  • 之一:当点击向上按钮,它会移动100vh下来从顶部位置。
  • 第二个:当点击左键,它将移动100vw右侧从左至右位置。

至于手机,我建议尝试使用:

  • Hammer.js:https://hammerjs.github.io/
  • 或引用这个答案:https://www.junxiaochen.com/a/23230280/2474466

你可以通过烹饪一个函数来减少代码行数,并像这样调用它:(Make su重新声明全局变量是Panel2)

btnL.addEventListener('click', function() { 
    swiper("left"); 
}); 
btnLBack.addEventListener('click', function() { 
    swiper("left"); 
}); 


function swiper(dir){ 
panelC.classList.toggle('cslide-'+dir); 
if(dir=="up") panel2=panelU; 
else if(dir=="right") panel2=panelR; 
else if(dir=="left") panel2=panelL; 
else if(dir=="down") panel2=panelD; 
panel2.classList.toggle('slide-'+dir); 
} 
  • 功能刷卡只有一个参数dir其确定它具有方向移动。您可以连接dircslide-以移动中心容器。并使用if/else条件来确定哪个面板移动并使用相同的想法。
  • 为了让它更简单和有效一些,如果你没有使用任何其他的按钮或面板的事件监听器,并且唯一的目的是切换类,你可以直接使用内联onClick="swiper('direction');"属性面板和按钮仅在需要时才触发它,而不是在脚本中定义事件侦听器。

var panel2; 
 
var panelC = document.getElementById('center'); 
 
var panelU = document.getElementById('up'); 
 
var panelR = document.getElementById('right'); 
 
var panelD = document.getElementById('down'); 
 
var panelL = document.getElementById('left'); 
 
var btnU = document.getElementById('btn-up'); 
 
var btnR = document.getElementById('btn-right'); 
 
var btnD = document.getElementById('btn-down'); 
 
var btnL = document.getElementById('btn-left'); 
 
var btnUBack = document.getElementById('btn-up-back'); 
 
var btnRBack = document.getElementById('btn-right-back'); 
 
var btnDBack = document.getElementById('btn-down-back'); 
 
var btnLBack = document.getElementById('btn-left-back'); 
 

 
btnU.addEventListener('click', function() { 
 
    swiper("up"); 
 
}); 
 
btnUBack.addEventListener('click', function() { 
 
    swiper("up"); 
 
}); 
 

 
btnR.addEventListener('click', function() { 
 
    swiper("right"); 
 
}); 
 
btnRBack.addEventListener('click', function() { 
 
swiper("right"); 
 
}); 
 

 
btnD.addEventListener('click', function() { 
 
    swiper("down"); 
 
}); 
 
btnDBack.addEventListener('click', function() { 
 
    swiper("down"); 
 
}); 
 

 
btnL.addEventListener('click', function() { 
 
    swiper("left"); 
 
}); 
 
btnLBack.addEventListener('click', function() { 
 
    swiper("left"); 
 
}); 
 

 

 
function swiper(dir){ 
 
panelC.classList.toggle('cslide-'+dir); 
 
if(dir=="up") panel2=panelU; 
 
else if(dir=="right") panel2=panelR; 
 
else if(dir=="left") panel2=panelL; 
 
else if(dir=="down") panel2=panelD; 
 
panel2.classList.toggle('slide-'+dir); 
 
}
* { 
 
    margin: 0; 
 
    padding: 0; 
 
    transition: 1.5s ease; 
 
    -webkit-transition: 1.5s ease; 
 
    overflow: hidden; 
 
    background: white; 
 
} 
 

 
.panel { 
 
    width: 100vw; 
 
    height: 100vh; 
 
    display: block; 
 
    position: absolute; 
 
    border: 1px solid blue; 
 
} 
 

 
.btn { 
 
    position: absolute; 
 
    padding: 16px; 
 
    cursor: pointer; 
 
} 
 

 
#center { 
 
    top: 0px; 
 
    left: 0px; 
 
    right: 0px; 
 
    bottom: 0px; 
 
} 
 

 
#center.cslide-up { 
 
    top: 100vh; 
 
} 
 

 
#center.cslide-left { 
 
    left: 100vw; 
 
} 
 

 
#center.cslide-right { 
 
    left: -100vw; 
 
} 
 

 
#center.cslide-down { 
 
    top: -100vh; 
 
} 
 

 

 

 
#up { 
 
    top: -100vh; 
 
} 
 

 
#up.slide-up { 
 
    top: 0; 
 
} 
 

 
#right { 
 
    right: -100vw; 
 
} 
 

 
#right.slide-right { 
 
    right: 0; 
 
} 
 

 
#down { 
 
    bottom: -100vh; 
 
} 
 

 
#down.slide-down { 
 
    bottom: 0; 
 
} 
 

 
#left { 
 
    left: -100vw 
 
} 
 

 
#left.slide-left { 
 
    left: 0; 
 
}
<div class="panel" id="center"> 
 
    <div class="btn" id="btn-up" style="text-align: center; width: 100%;"> 
 
    up 
 
    div> 
 
    <div class="btn" id="btn-right" style="right: 0; top: 50%;"> 
 
    right 
 
    div> 
 
    <div class="btn" id="btn-down" style="text-align: center; bottom: 0; width: 100%;"> 
 
    down 
 
    div> 
 
    <div class="btn" id="btn-left" style="top: 50%;"> 
 
    left 
 
    div> 
 
div> 
 

 
<div class="panel" id="up"> 
 
    <div class="btn" id="btn-up-back" style="bottom: 0; width: 100%; text-align: center;"> 
 
    back 
 
    div> 
 
div> 
 

 
<div class="panel" id="right"> 
 
    <div class="btn" id="btn-right-back" style="left: 0; top: 50%;"> 
 
    back 
 
    div> 
 
div> 
 

 
<div class="panel" id="down"> 
 
    <div class="btn" id="btn-down-back" style="top: 0; width: 100%; text-align: center;"> 
 
    back 
 
    div> 
 
div> 
 

 
<div class="panel" id="left"> 
 
    <div class="btn" id="btn-left-back" style="right: 0; top: 50%;"> 
 
    back 
 
    div> 
 
div>

关于作者

问题动态

发布时间
2020-09-15 15:51
更新时间
2022-09-15 15:51
关注人数
2 人关注

相关问题

的Javascript:如何加载更新的音频文件并进行播放
大量的文件怎么批量进行重命名?
添加和更改网页中的动态内容
matlab如何同时对多个图像进行均值处理
请问UDI数据库里的用户如何进行删除呢?
数据库风险评估系统针对数据资产是如何进行评估的?
视频添加滚动字幕并修改格式为TS,怎么操作可以实现?
如何使用setActiveItem进行卡片布局以基于radiobuttton选择显示面板?
初学者如何进行网站开发?
是否有RESTAPI就可以进行数据分析?
个人工作笔记 Powered BY WeCenter V4.1.0 © 2024 粤ICP备2020123311号