jQuery箭頭切換圖片 - 學習筆記

来源:http://www.cnblogs.com/weiaixiaomianbao/archive/2017/05/27/6914167.html
-Advertisement-
Play Games

jQuery箭頭切換圖片 佈局 3d位移 變形原點 jQuery transform:translate3d(x,y,z); x 代表橫向坐標移向量的長度 y 代表縱向坐標移向量的長度 z 代表Z軸移向量的長度 取值不可為百 scale() 縮放 transform-origin:0 50%; to ...


jQuery箭頭切換圖片

  • 佈局
  • 3d位移 變形原點
  • jQuery

transform:translate3d(x,y,z);

       x 代表橫向坐標移向量的長度
       y 代表縱向坐標移向量的長度
       z 代表Z軸移向量的長度 取值不可為百

scale() 縮放

transform-origin:0 50%;

       top left | left top 等價於 0 0
       top | top center | center top 等價於 50% 0
       right top | top right 等價於 100% 0
       left | left center | center left 等價於 0 50%
       center | center center 等價於 50% 50%(預設值)
       right | right center | center right 等價於 100% 50%
       bottom left | left bottom 等價於 0 100%
       bottom | bottom center | center bottom 等價於 50% 100%
       bottom right | right bottom 等價於 100% 100%

 left,center right是水平方向取值,對應的百分值為left=0%;center=50%;right=100%
 top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%;

HTML 部分

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>jQuery箭頭按鈕切換圖片</title>
<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
</head>
<body>
<div class="box">

    <div class="list">
        <ul>
            <li class="p7"><a href="#"><img src="img/1.png" alt="" /></a></li>
            <li class="p6"><a href="#"><img src="img/2.png" alt="" /></a></li>
            <li class="p5"><a href="#"><img src="img/3.png" alt="" /></a></li>
            <li class="p4"><a href="#"><img src="img/44.jpg" alt="" /></a></li>
            <li class="p3"><a href="#"><img src="img/55.jpg" alt="" /></a></li>
            <li class="p2"><a href="#"><img src="img/66.jpg" alt="" /></a></li>
            <li class="p1"><a href="#"><img src="img/77.jpg" alt="" /></a></li>
        </ul>
    </div>
    
    <a href="javascript:;" class="prev btn"><</a>
    <a href="javascript:;" class="next btn">></a>
</div>
</body>
</html>

CSS 部分

<style type="text/css">
*{
    margin: 0;
    padding: 0;
}


.box{
    margin-top: 80px;
    width: 100%;
    height: 340px;
    position: relative; /* 相對定位 */
}

.list{
    width: 1200px;
    height: 300px;
    overflow: hidden;
    position: absolute;
    left: 50%;
    margin-left: -600px;
}

.btn{
    position: absolute; /* 絕對定位 */
    top: 50%;
    margin-top: -50px;
    width: 60px;
    height: 100px;
    line-height: 100px; /* 行高 */
    font-size: 30px;
    color: white;
    text-decoration: none; /* 文本修飾 */
    text-align: center;
    background: rgba(0,255,0,.5);
    cursor: pointer; /* 游標的樣式 改為手指 */
}
.next{
    right: 0;
}

li{
    position: absolute;
    top: 0;
    left: 0;
    list-style: none;
    opacity: 0;
    transition: all 0.3s ease-out;
}
img{
    width: 751px;
    height: 300px;
    border:none;
    float: left;
}
.p1{
    transform:translate3d(-224px,0,0) scale(0.81);
    /* 3d位移 x,y,z 
       x 代表橫向坐標移向量的長度
       y 代表縱向坐標移向量的長度
       z 代表Z軸移向量的長度 取值不可為百分比
     */
}
.p2{
    transform:translate3d(0px,0,0) scale(0.81);
    transform-origin:0 50%;  /* 變形原點 */
    /*  top left | left top 等價於 0 0
        top | top center | center top 等價於 50% 0
        right top | top right 等價於 100% 0
        left | left center | center left 等價於 0 50%
        center | center center 等價於 50% 50%(預設值)
        right | right center | center right 等價於 100% 50%
        bottom left | left bottom 等價於 0 100%
        bottom | bottom center | center bottom 等價於 50% 100%
        bottom right | right bottom 等價於 100% 100%
     */
     /* 
        left,center right是水平方向取值,對應的百分值為left=0%;center=50%;right=100%
        top center bottom是垂直方向的取值,其中top=0%;center=50%;bottom=100%;        如果只取一個值,表示垂直方向值不變。
      */
  
    opacity: 0.8;
    z-index: 2;
}
.p3{
    transform:translate3d(224px,0,0) scale(1);
    z-index: 3;
    opacity: 1;
}
.p4{
    transform:translate3d(449px,0,0) scale(0.81);
    transform-origin:100% 50%;
    opacity: 0.8;
    z-index: 2;
}
.p5{
    transform:translate3d(672px,0,0) scale(0.81);
}
.p6{
    transform:translate3d(896px,0,0) scale(0.81);
}
.p7{
    transform:translate3d(1120px,0,0) scale(0.81);
}

</style>

JavaScript 部分

<script type="text/jscript">
var cArr=["p7","p6","p5","p4","p3","p2","p1"];
var index=0;
$(".next").click( //下一張
    function(){
    nextimg();
    }
)
$(".prev").click( //上一張
    function(){
    previmg();
    }
)
//上一張
function previmg(){
    cArr.unshift(cArr[6]); //向數組的開頭添加一個或更多元素 並返回新的長度
    cArr.pop(); //移除最後一個元素
    //i是元素的索引,從0開始
    //e為當前處理的元素
    //each迴圈,當前處理的元素移除所有的class,然後添加數組索引i的class
    $("li").each(function(i,e){
        $(e).removeClass().addClass(cArr[i]);
    })
    index--;
    if (index<0) {
        index=6;
    }
    show();
}

//下一張
function nextimg(){
    cArr.push(cArr[0]); //向數組的末尾添加一個或更多元素 並返回新的長度
    cArr.shift(); //刪除元素數組中的第一個值 並返回
    $("li").each(function(i,e){
        $(e).removeClass().addClass(cArr[i]);
    })
    index++;
    if (index>6) {
        index=0;
    }
    show();
}
</script>

此文到此結束

 

 

此文參考 http://www.w3cplus.com/css3/css3-3d-transform.html


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

-Advertisement-
Play Games
更多相關文章
  • IBM Rational Software Architect(RSA) -- IBM軟體開發平臺的一部分 – 是IBM在2003年二月併購Rational以來,首次發佈的Rational產品。改進過的軟體開發平臺在集成和易用性上達到一個新的層次。算是Rational Rose是的一個替代品。 Ra ...
  • 介面隔離原則(Interface Segregation Principle, ISP):使用多個專門的介面,而不使用單一的總介面,即客戶端不應該依賴那些它不需要的介面。 從介面隔離原則的定義可以看出,他似乎跟SRP有許多相似之處。 是的其實ISP和SRP都是強調職責的單一性, 介面隔離原則告訴我們 ...
  • 微服務的歷史背景 微服務架構的產生和流行並不是偶然的,它是多重因素推動下的必然結果,下麵通過對傳統MVC垂直架構面臨的挑戰進行相關分析,來瞭解微服務化所帶來的變化。 研發和運維成本高 1、代碼重覆率高 1)從技術架構角度看,傳統垂直架構的特點是本地API介面調用,不存在業務的拆分和互相調用,使用到上 ...
  • 模板方法模式的定義 在一個方法中定義一個演算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以在不改變演算法結構的情況下,重新定義演算法中的某些步驟。 模板方法模式的類圖 在我們使用的框架中,很多地方都用到了模板方法模式。畢竟框架要對用戶是可擴展的,所以會封裝了一些模板方法,然後部分具體的實現交由子 ...
  • 2017年5月28日,晴,心情還不錯。 昨晚和同事擼串,回來後繼續威士忌走起,喝到凌晨2點多,聊的甚歡。彼此分享了很多自己成長過程中的故事,相互之間有了進一步的瞭解,友情又進了一步。在以後的時光里,願珍惜,共勉,我的朋友們! 昨下午同事胡幫我測了一下自己負責的模塊,發現了一些小問題,馬上著手修BUG ...
  • 《圖靈原創:Node.js開髮指南》首先簡要介紹Node.js,然後通過各種示例講解Node.js的基本特性,再用案例式教學的方式講述如何用Node.js進行Web開發,接著探討一些Node.js進階話題,最後展示如何將一個Node.js應用部署到生產環境中。 《圖靈原創:Node.js開髮指南》面 ...
  • 最近項目做多頁面應用使用到了,react + webpack + redux + antd去構建多頁面的應用,本地開發用express去模擬服務端程式(個人覺得可以換成dva).所以在這裡吐槽一下我自己對於redux的一些見解。 Redux是狀態管理的服務,可以當作是mvc中的controller層 ...
  • Angular4.0來了,更小,更快,改動少 接下來為Angular4.0準備環境和學會使用Angular cli項目 1.環境準備: 1)在開始工作之前我們必須設置好開發環境 如果你的機器上還沒有安裝Node.js和npm,請安裝他們 (這裡特別推薦使用淘寶的鏡像cnpm,記得以後把npm的指令改 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...