所有分类
  • 所有分类
  • 后端开发
移动端页面滚动切换元素的实现方法及步骤

移动端页面滚动切换元素的实现方法及步骤

①移动距离未超过子元素宽度的50%,将当前页面回滚到初始位置,不切换当前元素。②移动距离超过子元素宽度的50%,切换当前元素为下一个元素。首先实现一个双向链表,用于维护轮播组件中的元素。手指在屏幕上滑动,页面跟随手指移动

网页上那些吸引你眼球的动态互动设计,是不是让你忍不住想多瞅两眼?今儿咱们就来聊聊这个有趣的话题:怎样通过指尖在屏幕上滑动,就能随心所欲地控制网页元素?这可不只是技术炫酷,更是一种艺术,让你与网页互动得更加畅快淋漓!

一、初始状态的设置:从零开始的故事

网页看着挺顺眼?可别被那简洁的外表骗到,这事儿其实还有些麻烦。首先得整出个双向链表,就跟家庭的族谱差不多,让每个元素都有自己的位置和身份,这样才能方便地管理它们,无论是添加、删除还是移动,都能井然有序。

二、触摸事件的触发:手指的舞蹈

轻轻一滑,屏幕上瞬间开始了无声的舞蹈!就像是个懂行的指挥家,你的每一次触碰都会被捕捉到,然后页面上的元素就会按照预设的节奏动起来。感觉就像在玩一个精心设计的游戏,每次滑动都能带来新的惊喜,超级好玩!

三、移动距离的判断:细心的守望者

在玩游戏的时候,有个小帮手看着你走得有多远,就像个严格的裁判员一样。只要你离子元素的一半距离还差那么一点点,它就会悄悄告诉屏幕,让它返回起始点,确保没有任何变化。

//html

     

         

item-1

          

         

item-2

          

         

item-3

      

       

item-4

          

         

item-5

     

四、元素切换的魔法:穿越屏幕的奇幻之旅

其实只要你走的位置超过50%,就能发现魔法的魔力!就像是推开一扇门,旧元素就自然离去,新元素会带给你崭新的故事和惊喜哟。这种自由转换就像是在屏幕上玩了一场奇妙的旅行,让人忍不住想继续探索下去。

移动端页面滚动切换元素的实现方法及步骤

//css
.carousel{
  height: 50%;
  position: relative;
  overflow: hidden;
}
.item {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
}

五、变换属性的调整:舞台背后的艺术家

看要点来了!搞定这个大片其实就是在属性上做点小小的调整。首先,给子元素加个transform=”translate3d(0px,0px,0px)”,这样就能让它隐形消失在画面里。接下来,再换个translate3d(“375px,0px,0px”)给另一个子元素,瞬间它就变成了舞台焦点,炫酷登场!

六、z-index属性的作用:层次分明的世界

function Node(data) {
    this.data = data;
    this.prev = null;
    this.next = null;
    this.index = -1;
}
//双向循环列表
function LinkList() {
    var _nodes = [];
    this.head = null;
    this.last = null;
    if (typeof this.append !== "function") {
        LinkList.prototype.append = function (node) {
            if (this.head == null) {
                this.head = node;
                this.last = this.head;
            }
            else {
                this.head.prev = node;
                this.last.next = node;
                node.prev = this.last;
                node.next = this.head;
                this.last = node;
            }
            node.index = _nodes.length; //务必在push前设置node.index
            _nodes.push(node);
        }
    }
}

原来,有了z-index,就像给了万物一个排队的机会!有了它,每个元素都能在合适的时间地点出现,整张网页变得井井有条、清晰明确。

七、循环链表的魔力:无尽的旅程

var _container = document.querySelector("." + containerClass);
var _items = document.querySelectorAll("." + itemClass);
var list = loop ? new LinkList() : new SingleList();
for(var i = 0; i 

绑定触摸事件

touchstart事件

手指按下时,保存初始位置

_container.addEventListener("touchstart", function(e) {
  // e.preventDefault();//取消此行代码的注释会在该元素内阻止页面纵向滚动
  var touch = e.touches[0];
  startX = touch.clientX;   //保存手指按下时的位置
  startY = touch.clientY;
  _container.style.webkitTransition = ""; //取消动画效果
  startT = new Date().getTime();          //记录手指按下的开始时间
  isMove = false;
  transitionItems(_prev, false);             //取消之前元素的过渡
  transitionItems(_current, false);          //取消当前元素的过渡
}, false);

说道循环链表,真的好带感!它最牛逼的地方就在于首尾相接,上一步的元素也就等于下一步的元素,就像是走进了一个永远走不完的迷宫。当你用这个东西刷屏时,那感觉就像是在飞速前进,快得让人眼花缭乱。

这次调整后,我们不仅仅是做了个网页,还打造了一个好玩又有活力的地方!每次滑动,每次切换,就好像在探险一样兴奋!赶快加入我们这个大冒险,把你的想法和感受分享出来,让我们一起创造一个更加精彩的网页世界!

原文链接:https://www.icz.com/technicalinformation/web/2024/06/18200.html,转载请注明出处~~~
0

评论0

请先
注意:请收藏好网址www.icz.com,防止失联!站内免费资源持续上传中…!赞助我们
显示验证码
没有账号?注册  忘记密码?