日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Transition 实现轮播图

發布時間:2025/3/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Transition 实现轮播图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

關于輪播圖的實現算是前端的一個基礎,其實實現起來是很簡單,這里把實現的基本思路總結一下。
輪播圖的實現方案有很多種方式,可以用純js來實現,也可用css來實現,我們這里主要用到了css3的過渡(transition)以及轉換(transform),二者結合實現圖片的勻速移動。雖然實現方式有很多,但是基本的html結構卻是一樣的。

<body><div class="slide"><div id="content"><img src="./image1.jpg" class="image1" /><img src="./image2.jpg" /><img src="./image3.jpg" /></div><div id="barWrap"><div class="leftBar" id="leftBar"></div><div class="rightBar" id="rightBar"></div></div></div></body>

然后設置slide的寬度為圖片寬度并居中,將content元素寬度設置為所有圖片的總寬度,使圖片能夠排列在同一行,同時給slide設置overflow: hidden將超出的部分隱藏,這樣我們就只能看到一張圖片了,具體的css如下

<style>.slide {width: 300px;margin: 0 auto;overflow: hidden;position: relative; }#content {width: 1000px;transition: transform 1s; }img {width: 300px;height: 100px;}.leftBar {position: absolute;top: 35px;}.leftBar:before {content: '\23EA';display: block;font-size: 30px;}.rightBar:after {content: '\23E9';display: block;font-size: 30px;}.rightBar {position: absolute;top: 35px;right: 0px;}</style>

我們用js來控制輪播的開始以及上一張或者下一張操作

<script>var leftDistance = 0var totalDistance = 600var content = document.getElementById('content')var barWrap = document.getElementById('barWrap')var timer = nullbarWrap.addEventListener('click', function(e) {window.clearInterval(timer)if (e.target.id==='leftBar') {if (leftDistance === totalDistance) {leftDistance = -300}leftDistance += 300} else if (e.target.id === 'rightBar') {if (leftDistance === 0) {leftDistance = 900}leftDistance -= 300}content.style.transform = 'translate(-'+leftDistance+'px)' timer = setInterval(test, 3000)})var test = function() {if (leftDistance < totalDistance) {leftDistance+=300} else {leftDistance = 0}content.style.transform = 'translate(-'+leftDistance+'px)' }timer = setInterval(test, 3000)</script>

這里有一個小技巧,關于事件委托,將click事件綁定到barWrap元素上, 這樣可以省掉一個click事件,只需要在回調函數里面判斷具體的元素實現不同方向的滾動即可。
有必要說一下在移動端通過觸屏事件進行圖片切換時,與上面的方法其實大同小異,判斷滑屏的方向以及滑動距離,實現不同方向的切換。
關于移動端的觸屏以及手勢事件有必要強調一下,最初在開發移動端Web的時候使用w3c標準的語法結構和原生的js開發,但相對來說開發量比較大,而且每一步都要考慮各移動端瀏覽器的兼容實在讓人頭疼,而且實現效果也不一定很好。因此一個好的兼容性架構對于開發者來說可以節省很大一部分工作量。推薦使用hammer.js,它是一款開源的移動端腳本框架,它可以完美的實現在移端開發的大多數事件,如:點擊、滑動、拖動、多點觸控等事件。不需要依賴任何其他的框架,并且整個框架非常小,在使用時非常簡單,代碼如下:

<div id="test" class="test"> </div> <script type="text/javascript">var hammertime =new Hammer(document.getElementById("test"))hammertime.on("pan", function (e) {console.log(e)}) </script>

具體代碼:https://github.com/teapot-py/...

總結

以上是生活随笔為你收集整理的Transition 实现轮播图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。