国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用html+css+jquery實(shí)現(xiàn)3D輪播圖

這篇具有很好參考價(jià)值的文章主要介紹了使用html+css+jquery實(shí)現(xiàn)3D輪播圖。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

還是先來看看效果圖:

html 3d環(huán)形輪播圖,jquery,html,css

?通過效果圖我們先理一下思路:

首先就是需要幾張圖片,但只有一張是顯示在我們眼前的

第二步:把一張圖片分成幾等份,這樣點(diǎn)擊轉(zhuǎn)換的時(shí)候就會(huì)分開轉(zhuǎn)

第三步:就是實(shí)現(xiàn)點(diǎn)擊按鈕切換下一張。

HTML部分

HTML部分首先我們需要一個(gè)盒子顯示圖片,然后在盒子里裝入圖片,你想裝幾張圖片就可以寫幾個(gè)li,除了圖片我們還需要一個(gè)按鈕來點(diǎn)擊。

一個(gè)li的圖片效果如圖所示:

html 3d環(huán)形輪播圖,jquery,html,css

div是當(dāng)你點(diǎn)擊下一張的時(shí)候一個(gè)div代表li里的一張圖片

?代碼如下:

 <div class="box">
            <ul>
                <!-- 一個(gè)li代表一張圖片的四分之一 -->
                <li>
                    <!-- 一個(gè)div代表一張圖片 -->
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </li>
                <li>
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </li>
                <li>
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </li>
                <li>
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </li>
            </ul>
        </div>
        <!-- 按鈕 -->
        <input type="button" value="下一張" class="btn">

CSS部分

css部分就是設(shè)置樣式了,首先就是先給盒子一個(gè)寬高,盒子是裝顯示一張圖片的,接下來就是li了,給li設(shè)置絕對(duì)定位,不然圖片不會(huì)對(duì)齊的。

<style>
            *{
                margin: 0;
                padding: 0;
                list-style: none;
            }
            /* 給盒子設(shè)置寬高,用于顯示一張圖片的 */
            .box{
                position: relative;
                width: 600px;
                height: 360px;
                margin: 80px auto;
                border: 1px solid;
            }
            .box ul li{
                position: absolute;
                top: 0;
                width: 150px;
                height: 360px;
                /* 讓轉(zhuǎn)換的子元素位于3D轉(zhuǎn)換空間中 */
                transform-style: preserve-3d;
                perspective: 50000px;
                /* 過渡效果 */
                transition: all 1s ease 0s;
            }
            /*  設(shè)置li的左邊距和延遲時(shí)間*/
            .box ul li:nth-child(1){
                left: 0;
                transition-delay: 0s;
            }
            .box ul li:nth-child(2){
                left: 150px;
                transition-delay: 0.1s;
            }
            .box ul li:nth-child(3){
                left: 300px;
                transition-delay: 0.2s;
            }
            .box ul li:nth-child(4){
                left: 450px;
                transition-delay: 0.3s;
            }
            /* 設(shè)置div */
            .box ul li div{
                position: absolute;
                top: 0;
                left: 0;
                height: 100%;
                width: 100%;
                /* 圖片大小 */
                background-size: 600px 360px;
            }
            /* 設(shè)置圖片 旋轉(zhuǎn)一次90度*/
            .box ul li div:nth-child(1){
                background-image: url(./img/ruili_img3.jpg);
                transform: rotateX(0deg) translateZ(180px);
            }
            .box ul li div:nth-child(2){
                background-image: url(./img/ruili_img5.jpg);
                transform: rotateX(90deg) translateZ(180px);
            }
            .box ul li div:nth-child(3){
                background-image: url(./img/ruili_img6.jpg);
                transform: rotateX(180deg) translateZ(180px);
            }
            .box ul li div:nth-child(4){
                background-image: url(./img/ruili_img7.jpg);
                transform: rotateX(270deg) translateZ(180px);
            }
            /*  
                background-position:設(shè)置或檢索對(duì)象的背景圖像的位置,必須要先制定background-image屬性
                一個(gè)代表橫坐標(biāo),一個(gè)代表縱坐標(biāo)
             */
            .box ul li:nth-child(1) div{
                background-position: 0 0 ;
            }
            .box ul li:nth-child(2) div{
                background-position: -150px 0 ;
            }
            .box ul li:nth-child(3) div{
                background-position: -300px 0 ;
            }
            .box ul li:nth-child(4) div{
                background-position: -450px 0 ;
            }
            /* 設(shè)置按鈕 */
            .btn{
                display: block;
                margin: 0 auto;
            }
        </style>

Jquery部分

這里需要注意的是,如果你不設(shè)置一個(gè)開過和定時(shí)器,當(dāng)你點(diǎn)擊下一張時(shí)點(diǎn)擊一次沒問題,但是連續(xù)點(diǎn)擊就會(huì)出現(xiàn)一點(diǎn)bug,所以我加了一個(gè)開關(guān)思想,只有一張圖片完整的呈現(xiàn)在眼前后,下一張圖片才能出來。

 <script src="./js/jquery-1.11.3.js"></script>
 <script>
        var btn = $('.btn')
        var lis = $('.box ul li')
        // 角度
        var deg = 0
        // 開關(guān)
        var lock = false
        // 按鈕點(diǎn)擊事件
        btn.click(function(){
        if(lock) return
        lock = true
        // 點(diǎn)擊一次角度-90度
        deg -= 90
         // li的樣式改變
        lis.css({
           "transform":"rotateX(" + deg + "deg)"
       })
        // 設(shè)置延時(shí)定時(shí)器            
       var timeout = (1 + 0.1 * lis.length) * 1000
       setTimeout(function(){
             lock = false
         },timeout)
     })
  </script>

整體代碼

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>輪播圖</title>
        <style>
            *{
                margin: 0;
                padding: 0;
                list-style: none;
            }
            /* 給盒子設(shè)置寬高,用于顯示一張圖片的 */
            .box{
                position: relative;
                width: 600px;
                height: 360px;
                margin: 80px auto;
                border: 1px solid;
            }
            .box ul li{
                position: absolute;
                top: 0;
                width: 150px;
                height: 360px;
                /* 讓轉(zhuǎn)換的子元素位于3D轉(zhuǎn)換空間中 */
                transform-style: preserve-3d;
                perspective: 50000px;
                /* 過渡效果 */
                transition: all 1s ease 0s;
            }
            /*  設(shè)置li的左邊距和延遲時(shí)間*/
            .box ul li:nth-child(1){
                left: 0;
                transition-delay: 0s;
            }
            .box ul li:nth-child(2){
                left: 150px;
                transition-delay: 0.1s;
            }
            .box ul li:nth-child(3){
                left: 300px;
                transition-delay: 0.2s;
            }
            .box ul li:nth-child(4){
                left: 450px;
                transition-delay: 0.3s;
            }
            /* 設(shè)置div */
            .box ul li div{
                position: absolute;
                top: 0;
                left: 0;
                height: 100%;
                width: 100%;
                /* 圖片大小 */
                background-size: 600px 360px;
            }
            /* 設(shè)置圖片 旋轉(zhuǎn)一次90度*/
            .box ul li div:nth-child(1){
                background-image: url(./img/ruili_img3.jpg);
                transform: rotateX(0deg) translateZ(180px);
            }
            .box ul li div:nth-child(2){
                background-image: url(./img/ruili_img5.jpg);
                transform: rotateX(90deg) translateZ(180px);
            }
            .box ul li div:nth-child(3){
                background-image: url(./img/ruili_img6.jpg);
                transform: rotateX(180deg) translateZ(180px);
            }
            .box ul li div:nth-child(4){
                background-image: url(./img/ruili_img7.jpg);
                transform: rotateX(270deg) translateZ(180px);
            }
            /*  
                background-position:設(shè)置或檢索對(duì)象的背景圖像的位置,必須要先制定background-image屬性
                一個(gè)代表橫坐標(biāo),一個(gè)代表縱坐標(biāo)
             */
            .box ul li:nth-child(1) div{
                background-position: 0 0 ;
            }
            .box ul li:nth-child(2) div{
                background-position: -150px 0 ;
            }
            .box ul li:nth-child(3) div{
                background-position: -300px 0 ;
            }
            .box ul li:nth-child(4) div{
                background-position: -450px 0 ;
            }
            /* 設(shè)置按鈕 */
            .btn{
                display: block;
                margin: 0 auto;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <ul>
                <!-- 一個(gè)li代表一張圖片的四分之一 -->
                <li>
                    <!-- 一個(gè)div代表一張圖片 -->
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </li>
                <li>
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </li>
                <li>
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </li>
                <li>
                    <div></div>
                    <div></div>
                    <div></div>
                    <div></div>
                </li>
            </ul>
        </div>
        <!-- 按鈕 -->
        <input type="button" value="下一張" class="btn">

        <script src="./js/jquery-1.11.3.js"></script>
        <script>
           


            var btn = $('.btn')
            var lis = $('.box ul li')
            // 角度
            var deg = 0
            // 開關(guān)
            var lock = false
            // 按鈕點(diǎn)擊事件
            btn.click(function(){
                if(lock) return
                lock = true
                // 點(diǎn)擊一次角度-90度
                deg -= 90
                // li的樣式改變
                lis.css({
                    "transform":"rotateX(" + deg + "deg)"
                })
                // 設(shè)置延時(shí)定時(shí)器            
                var timeout = (1 + 0.1 * lis.length) * 1000
                setTimeout(function(){
                    lock = false
                },timeout)
            })
           </script>
            

          
    </body>
</html>

這樣寫的話我們會(huì)發(fā)現(xiàn)其實(shí)有的數(shù)據(jù)都是固定的,想要改的話很麻煩,下面這種方法是使用jquery渲染的方式現(xiàn)實(shí),這樣改數(shù)據(jù)就很簡單了,并且代碼量也少一點(diǎn)。

?????就是把數(shù)據(jù)通過渲染的方式寫出來,而且這種方法也更方便,比如把count改成40,就會(huì)一張圖片分成40等份,切換下一張圖片的時(shí)候就會(huì)40個(gè)切換,而不是四個(gè)了。

代碼如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>輪播圖</title>
        <style>
            *{
                margin: 0;
                padding: 0;
                list-style: none;
            }
            /* 給盒子設(shè)置寬高,用于顯示一張圖片的 */
            .box{
                position: relative;
                width: 600px;
                height: 360px;
                margin: 80px auto;
                /* border: 1px solid; */
            }
            .box ul li{
                position: absolute;
                top: 0;
                width: 150px;
                height: 360px;
                /* 讓轉(zhuǎn)換的子元素位于3D轉(zhuǎn)換空間中 */
                transform-style: preserve-3d;
                perspective: 50000px;
                /* 過渡效果 */
                transition: all 1s ease 0s;
            }
           
            /* 設(shè)置div */
            .box ul li div{
                position: absolute;
                top: 0;
                left: 0;
                height: 100%;
                width: 100%;
                /* 圖片大小 */
                background-size: 600px 360px;
            }
           
            .box ul li div:nth-child(1){
                background-image: url(./img/ruili_img3.jpg);
                transform: rotateX(0deg) translateZ(180px);
            }
            .box ul li div:nth-child(2){
                background-image: url(./img/ruili_img5.jpg);
                transform: rotateX(90deg) translateZ(180px);
            }
            .box ul li div:nth-child(3){
                background-image: url(./img/ruili_img6.jpg);
                transform: rotateX(180deg) translateZ(180px);
            }
            .box ul li div:nth-child(4){
                background-image: url(./img/ruili_img7.jpg);
                transform: rotateX(270deg) translateZ(180px);
            }
            
            /* 設(shè)置按鈕 */
            .btn{
                display: block;
                margin: 0 auto;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <ul>
                
            </ul>
        </div>
        <!-- 按鈕 -->
        <input type="button" value="下一張" class="btn">

        <script src="./js/jquery-1.11.3.js"></script>
        <script>
            

            var box = $('.box')
            var ul = $('.box ul')

            // 設(shè)置一張圖片分為幾等份
            var count = 4
            // 持續(xù)時(shí)間
            var duration = 1
            // 延遲時(shí)間
            var delay = 0.1
            // 圖片寬度
            var width = box.width()
            // li的寬度
            var liWidth = width / count
            // 渲染數(shù)據(jù)
            for(let i = 0;i < count;i++){
                var li = $("<li><div></div><div></div><div></div><div></div></li>")
                // 設(shè)置li的樣式
                li.css({
                    "width": liWidth,
                    "left": i * liWidth + 'px',
                    "transition-delay":i * delay + 's',
                    "transition-duration":duration + 's',
                }).children().css('background-position',-i * liWidth + 'px 0')
                ul.append(li)
            }


            var btn = $('.btn')
            var lis = $('.box ul li')
            // 角度
            var deg = 0
            // 開關(guān)
            var lock = false
            // 按鈕點(diǎn)擊事件
            btn.click(function(){
                if(lock) return
                lock = true
                // 點(diǎn)擊一次角度-90度
                deg -= 90
                // li的樣式改變
                lis.css({
                    "transform":"rotateX(" + deg + "deg)"
                })
                // 設(shè)置定時(shí)器            
                var timeout = (duration + delay * count) * 1000
                setTimeout(function(){
                    lock = false
                },timeout)
            })
           </script>
            
    </body>
</html>

???文章來源地址http://www.zghlxwxcb.cn/news/detail-720341.html

到了這里,關(guān)于使用html+css+jquery實(shí)現(xiàn)3D輪播圖的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • uni-app小程序折疊3D輪播圖效果實(shí)現(xiàn)。

    uni-app小程序折疊3D輪播圖效果實(shí)現(xiàn)。

    先來看效果圖 實(shí)現(xiàn)原理: 通過小程序的觸摸事件,來控制圖片數(shù)組的變化實(shí)現(xiàn)動(dòng)態(tài)樣式;來改變圖片的樣式。 貼上輪播組件完整代碼 組件使用 如果有自動(dòng)輪播的需求,可以改造下組件加個(gè)定時(shí)器處理數(shù)組就OK了。

    2024年02月11日
    瀏覽(25)
  • Html+CSS+JS輪播圖:手動(dòng)輪播,自動(dòng)輪播
  • new mars3d.graphic.Popup({實(shí)現(xiàn)插入輪播圖組件的思路參考

    new mars3d.graphic.Popup({實(shí)現(xiàn)插入輪播圖組件的思路參考

    需求場景: 官網(wǎng)的示例鏈接的浮動(dòng)監(jiān)控點(diǎn)示例,實(shí)現(xiàn)的是播放視頻。 但是我的需求場景是播放輪播圖,此時(shí)該怎么實(shí)現(xiàn)呢? 示例地址: 功能示例(Vue版) | Mars3D三維可視化平臺(tái) | 火星科技 相關(guān)代碼: function addRandomGraphicByCount(graphicLayer, position) { ? const graphicImg = new mars3d.graph

    2024年01月19日
    瀏覽(25)
  • HTML+CSS+JavaScript:輪播圖自動(dòng)播放

    HTML+CSS+JavaScript:輪播圖自動(dòng)播放

    輪播圖如下圖所示,需求是每隔一秒輪播圖自動(dòng)切換一次 ? 以下是缺失JS部分的代碼,感興趣的小伙伴可以先自己試著寫一寫 1、將代碼素材在瀏覽器中打開,并按F12進(jìn)入開發(fā)者模式,分析各個(gè)HTML標(biāo)簽在輪播圖中的位置及作用 2、獲取相關(guān)元素 3、利用間歇函數(shù)實(shí)現(xiàn)一秒切換一

    2024年02月14日
    瀏覽(30)
  • 如何使用CSS實(shí)現(xiàn)一個(gè)響應(yīng)式輪播圖?

    如何使用CSS實(shí)現(xiàn)一個(gè)響應(yīng)式輪播圖?

    前端入門之旅:探索Web開發(fā)的奇妙世界 歡迎來到前端入門之旅!感興趣的可以訂閱本專欄哦!這個(gè)專欄是為那些對(duì)Web開發(fā)感興趣、剛剛踏入前端領(lǐng)域的朋友們量身打造的。無論你是完全的新手還是有一些基礎(chǔ)的開發(fā)者,這里都將為你提供一個(gè)系統(tǒng)而又親切的學(xué)習(xí)平臺(tái)。在這個(gè)

    2024年02月11日
    瀏覽(25)
  • 網(wǎng)頁輪播圖制作(html+css+js)

    網(wǎng)頁輪播圖制作(html+css+js)

    ? ? ? ? 目的:用于自己做記錄,記錄制作的過程以及遇到的一些問題。內(nèi)容參考來自b站的up主:黑馬前端 的pink老師JavaScript基礎(chǔ)語法課程。 (1)當(dāng)鼠標(biāo)經(jīng)過輪播圖,左右兩邊的按鈕出現(xiàn),離開則隱藏按鈕; (2)點(diǎn)擊左側(cè)按鈕,圖片向右播放一張,以此類推,右側(cè)同理;

    2024年02月08日
    瀏覽(27)
  • ??創(chuàng)意網(wǎng)頁:打造簡潔美觀的網(wǎng)頁輪播圖(HTML簡單實(shí)現(xiàn)輪播圖)操作簡單可以直接使用

    ??創(chuàng)意網(wǎng)頁:打造簡潔美觀的網(wǎng)頁輪播圖(HTML簡單實(shí)現(xiàn)輪播圖)操作簡單可以直接使用

    ? 博主: 命運(yùn)之光 ?? 專欄: Python星辰秘典 ?? 專欄: web開發(fā)(簡單好用又好看) ?? 專欄: Java經(jīng)典程序設(shè)計(jì) ?? 博主的其他文章: 點(diǎn)擊進(jìn)入博主的主頁 前言: 歡迎踏入我的Web項(xiàng)目專欄,一段神奇而令人陶醉的數(shù)字世界! ?? 在這里,我將帶您穿越時(shí)空,揭開屬于

    2024年02月17日
    瀏覽(21)
  • 微信小程序首頁、界面布局、3D輪播圖效果(示例二)

    微信小程序首頁、界面布局、3D輪播圖效果(示例二)

    使用swiper實(shí)現(xiàn)3D輪播圖效果,自定義頂部狀態(tài)欄,具體代碼: 1、js代碼 2、wxml代碼 3、wxss代碼 4、json代碼 如需要下載完整版,包含監(jiān)聽事件、圖片文件等,請(qǐng)前往下方鏈接,下載完整版,下載后直接使用微信開發(fā)者工具打開即可,下載鏈接為: 小程序完整版界面(示例二)

    2024年02月10日
    瀏覽(27)
  • HTML+CSS+JavaScript:輪播圖的自動(dòng)播放、手動(dòng)播放、鼠標(biāo)懸停暫停播放

    HTML+CSS+JavaScript:輪播圖的自動(dòng)播放、手動(dòng)播放、鼠標(biāo)懸停暫停播放

    昨天我們做了輪播圖的自動(dòng)播放,即每隔一秒自動(dòng)切換一次 今天我們?cè)黾觾蓚€(gè)需求: 1、鼠標(biāo)點(diǎn)擊向右按鈕,輪播圖往后切換一次;鼠標(biāo)點(diǎn)擊向左按鈕,輪播圖往前切換一次 2、鼠標(biāo)懸停在輪播圖區(qū)域中時(shí),輪播圖暫停播放 ? 以下是缺失JS部分的代碼,感興趣的小伙伴可以先

    2024年02月14日
    瀏覽(26)
  • 前端效果積累 |別具一格的3D酷炫輪播圖效果收集

    前端效果積累 |別具一格的3D酷炫輪播圖效果收集

    ?? 個(gè)人主頁 :個(gè)人主頁 ??? 推薦專欄 :前端開發(fā)成神之路 --【 這是一個(gè)為想要 入門和進(jìn)階前端開發(fā)專門開啟的精品專欄 !從 個(gè)人到商業(yè)的全套開發(fā)教程 ,實(shí)打?qū)嵉母韶浄窒?,確定不來看看? ????】 ?? 作者簡介 : 從web開發(fā),再到大數(shù)據(jù)算法,踩過了無數(shù)的坑,用

    2024年02月16日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包