网页上那些吸引你眼球的动态互动设计,是不是让你忍不住想多瞅两眼?今儿咱们就来聊聊这个有趣的话题:怎样通过指尖在屏幕上滑动,就能随心所欲地控制网页元素?这可不只是技术炫酷,更是一种艺术,让你与网页互动得更加畅快淋漓!
一、初始状态的设置:从零开始的故事
网页看着挺顺眼?可别被那简洁的外表骗到,这事儿其实还有些麻烦。首先得整出个双向链表,就跟家庭的族谱差不多,让每个元素都有自己的位置和身份,这样才能方便地管理它们,无论是添加、删除还是移动,都能井然有序。
二、触摸事件的触发:手指的舞蹈
轻轻一滑,屏幕上瞬间开始了无声的舞蹈!就像是个懂行的指挥家,你的每一次触碰都会被捕捉到,然后页面上的元素就会按照预设的节奏动起来。感觉就像在玩一个精心设计的游戏,每次滑动都能带来新的惊喜,超级好玩!
三、移动距离的判断:细心的守望者
在玩游戏的时候,有个小帮手看着你走得有多远,就像个严格的裁判员一样。只要你离子元素的一半距离还差那么一点点,它就会悄悄告诉屏幕,让它返回起始点,确保没有任何变化。
//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