javascript效果:手風琴、輪播圖、圖片滑動

来源:http://www.cnblogs.com/zhangzhicheng/archive/2016/09/14/5870311.html
-Advertisement-
Play Games

最近都沒有更,就來幾個效果充實一下。 都沒有進行美化這步。 手風琴: 純css: css3手風琴: javascript實現的手風琴: 接下來的都是會使用到動畫效果,既然這樣就把封裝好運動: 輪播圖: 這個是使用插件做的:responsiveslides.js 基於jquery 圖片滑動: 到此為止 ...


最近都沒有更,就來幾個效果充實一下。

都沒有進行美化這步。

手風琴:

純css:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>手風琴css</title>
    <style>
    .showBox{
        width: 660px;
        overflow: hidden;
    }
        ul{
            list-style: none;
            margin: 0;
            padding: 0;
            width: 30000px;
        }
        
        ul li{
            float: left;
            position: relative;
            height: 254px;
            width: 110px;
            overflow: hidden;
            transition: all 0.3s;
        }
        /* 這是css手風琴的核心,就是hover的使用
        **首先是ul:hover li這個觸發了經過ul但沒有經過li的變化
        **然後是ul li:hover這裡是被經過li的變化,匹配css3動畫效果,
        和css3的一些對頁面美化的效果,就可以做出一個很好看的手風琴,
        如果使用純js實現可能很麻煩。
         */
        ul:hover li{
            width:22px;
        }
        ul li:hover{
            width: 460px;
        }

        ul li img{
            width: 550px;
            height: 254px;
        }
        ul li span{
            width: 22px;
            position: absolute;
            top: 0;
            right: 0;
            height: 204px;
            padding-top: 50px;
            color: #fff;
        }
        ul li span.bg1{
            background: #333;
        }
        ul li span.bg2{
            background: #0f0;
        }
        ul li span.bg3{
            background: #ff7500;
        }
        ul li span.bg4{
            background: #0ff;
        }
        ul li span.bg5{
            background: #00f;
        }
    </style>
    <script type="text/javascript">
        
    </script>
</head>
<body>
    <div class="showBox">
        <ul>
            <li><span class="bg1">這是第一個</span><img src="1.jpg" alt=""></li>
            <li><span class="bg2">這是第二個</span><img src="2.jpeg" alt=""></li>
            <li><span class="bg3">這是第三個</span><img src="3.jpg" alt=""></li>
            <li><span class="bg4">這是第四個</span><img src="4.jpg" alt=""></li>
            <li><span class="bg5">這是第五個</span><img src="5.jpg" alt=""></li>
        </ul>
    </div>
</body>
</html>

css3手風琴:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>css3-checked:</title>
    <style>
    /* 使用了radio的單選特性,實現手風琴效果 */
        ul{
            display: none;
        }
         input{display: none;} 
         label{display: block; line-height: 40px; border-bottom: 1px solid #ddd; cursor:pointer; font-size: 15px; font-weight: bold;} 
         .list > ul{display: none; -webkit-transition:all .5s linear; -moz-transition:all .5s linear; -ms-transition:all .5s linear; -o-transition:all .5s linear; transition:all .5s linear;} 
         #list1:checked + ul{display: block;} 
         #list2:checked + ul{display: block;} 
         #list3:checked + ul{display: block;} 
         #list4:checked + ul{display: block;}
    </style>
</head>
<body>
    <div> <label for="list1">我的同學</label> <input type="radio" name="list" id="list1" checked="chekced"/> 
    <ul> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> </ul> <label for="list2">我的同學</label> 
    <input type="radio" name="list" id="list2"/> 
    <ul> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> </ul> <label for="list3">我的同學</label> <input type="radio" name="list" id="list3"/> <ul> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> </ul> <label for="list4">我的同學</label> <input type="radio" name="list" id="list4"/> <ul> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> <li><a href="">同學名字</a></li> </ul> </div>
</body>
</html>

javascript實現的手風琴:

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>手風琴</title>
    <style>
    .showBox{
        width: 660px;
        overflow: hidden;
    }
        ul{
            list-style: none;
            margin: 0;
            padding: 0;
            width: 30000px;
        }
        ul li.active{
            width: 550px;
        }
        ul li{
            float: left;
            position: relative;
            height: 254px;
            width: 22px;
            overflow: hidden;
        }
        ul li img{
            width: 660px;
            height: 254px;
        }
        ul li span{
            width: 22px;
            position: absolute;
            top: 0;
            left: 0;
            height: 204px;
            padding-top: 50px;
        }
        ul li span.bg1{
            background: #333;
        }
        ul li span.bg2{
            background: #0f0;
        }
        ul li span.bg3{
            background: #ff7500;
        }
        ul li span.bg4{
            background: #0ff;
        }
        ul li span.bg5{
            background: #00f;
        }
    </style>

    <script type="text/javascript">
        window.onload=function ()
        {
            createAccordion('.showBox');
        };

        function createAccordion(name)
        {
            /*獲取元素*/
            var oDiv=document.querySelector(name);
            /*聲明最小寬度*/
            var iMinWidth=9999999;
            /*獲取元素*/
            var aLi=oDiv.getElementsByTagName('li');
            var aSpan=oDiv.getElementsByTagName('span');
            /*定時器容器預設*/
            oDiv.timer=null;
            /*迴圈添加事件和自定義屬性索引值*/
            for(vari=0;i<aSpan.length;i++)
            {
                aSpan[i].index=i;
                aSpan[i].onmouseover=function ()
                {
                    gotoImg(oDiv, this.index, iMinWidth);
                };
                /*獲取最小寬度*/
                iMinWidth=Math.min(iMinWidth, aLi[i].offsetWidth);
            }
        };

        function gotoImg(oDiv, iIndex, iMinWidth)
        {
            if(oDiv.timer)
            {    /*清除定時器,避免疊加*/
                clearInterval(oDiv.timer);
            }
            /*開啟定時器*/
            oDiv.timer=setInterval
            (
                function ()
                {
                    changeWidthInner(oDiv, iIndex, iMinWidth);
                }, 30
            );
        }
        /*這裡是關鍵,運動*/
        function changeWidthInner(oDiv, iIndex, iMinWidth)
        {
            var aLi=oDiv.getElementsByTagName('li');
            var aSpan=oDiv.getElementsByTagName('span');
            /*獲取盒子的大小,這個是總寬度*/
            var iWidth=oDiv.offsetWidth;
            /*縮進去的圖片的寬度聲明*/
            var w=0;
            /*判斷的聲明,為了清除定時器聲明*/
            var bEnd=true;
            /*迴圈為了把每個圖片都迴圈一遍,為了獲取伸進和縮去的元素*/
            for(var i=0;i<aLi.length;i++)
            {
                /*這為獲取伸進的索引*/
                if(i==iIndex)
                {
                    continue;
                }
                /*	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一、演算法介紹 tarjan——求解有向圖強連通分量。這個演算法在本人的一篇blog中有介紹,這裡就不贅述了。貼上介紹tarjan的的blog鏈接:http://www.cnblogs.com/Maki-Nishikino/p/5866191.html 那麼接下來說說SPFA: SPFA全稱Shorte ...
  • org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [beans4.xml]: I ...
  • 一、介紹 Java流程式控制制包括順序控制、條件控制和迴圈控制。 順序控制,就是從頭到尾依次執行每條語句操作。條件控制,基於條件選擇執行語句,比方說,如果條件成立,則執行操作A,或者如果條件成立,則執行操作A,反之則執行操作B。迴圈控制,又稱為迴路控制,根據迴圈初始條件和終結要求,執行迴圈體內的操作。 ...
  • 用FPGA設計了數據接收和發送模塊,FIFO模塊 用串口調試工具發送數據,數據接收模塊將接收到的串列數據轉換為並行數據(串轉並),並存入FIFO中,當FIFO中的數據個數大於某個值的時候,讀出數據,通過發送模塊將並行數據轉換為串列數據(並轉串),然後就可以在串口調試工具上看到接收到的數據。 註意的點 ...
  • 一、引入本地庫 1、File -> Project Structure -> Libraries,點擊+,新增本地lib庫。 2、File -> Project Structure -> Modules -> Dependencies,新增Library,選擇第一步創建的lib庫。 二、將本地庫wa ...
  • 需求從何而來?對於一個項目來說,應該是從設計需求文檔中而絕不是頁面。之所以說國內的產品經理技術偏低,很大部分因為他們把過多的熱情放在了畫原型的上面。 從頁面走出,實現真正的業務驅動。 PDD 一切以頁面為核心,每個程式員針對每個頁面來找到功能點,從而以頁面為單位進行任務交付。開發未動,頁面先行,這也 ...
  • 最近在學習釘釘(一個協作應用)桌面應用的前端源碼時候,發現其js源碼是用browserify做模塊開發。於是想還原其源碼的原本的目錄結構,學習它的目錄分類以及業務劃分。 前言 用過browserify構建工具的應該清楚,在壓縮合併後的代碼的最前面,有處理模塊依賴關係的代碼: 目錄結構解析 我寫了一個 ...
  • 我們的項目使用了bootstrapValidator來作為前端校驗,但是表單裡面有一個UEditor,它用bootstrapValidator是沒有效果的,為了頁面風格統一,只要修修改改咯 首先來看一下修改後的效果 上面的UEditor是我們的業務需要調整成這樣的,首先我們我們先把基本的結構寫一寫 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...