DOM學習之圖片庫切換效果

来源:https://www.cnblogs.com/xueyunNO1/archive/2018/07/23/9352418.html
-Advertisement-
Play Games

HTML代碼 CSS代碼 ...


addloadevent(prepareplaceholder())
addloadevent(prepareGallery())
//頁面載入完時執行函數
function addloadevent(func) { //參數放入你界面載入完要執行的函數
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        oldonload();
        func();
    }
}
// 向後插入元素方法
function insertAfter(ent,hou) { //第一個參數你要出入的節點,第二參數你要插入誰的後面
    var parer = hou.parentNode; //獲取他的父級判斷所選的元素是否是最後一個
    if (parer.lastChild == hou) {
        parer.appendChild(ent); //如果是最後一個直接執行appendChild插入到後面
    } else {
        parer.insertBefore(ent, hou.nextSibling); //如果不是則插入到父級的同級的前面 

    }
}
//插入img 和 p節點設置屬性
function prepareplaceholder() {
    if (!document.createElement) return false;
    if (!document.createTextNode) return false;
    if (!document.getElementById) return false;
    if (!document.getElementById("imagegallery")) return false;
    //創建一個img標簽設置屬性
    var placeholder = document.createElement("img");
    placeholder.setAttribute("id", "placeholder");
    placeholder.setAttribute("src", "img/200u0l000000d8n8xB0E3_R_550_412.jpg");
    placeholder.setAttribute("alt", "第一張圖片");
    //創建一個p標簽給他設置屬性
    var description = document.createElement("p");
    description.setAttribute("id", "description");
    var desctext = document.createTextNode("第一張圖片");
    description.appendChild(desctext);
    // 將創建好的標簽插入HTML文檔中
    var gallery = document.getElementById("imagegallery");
    insertAfter(placeholder, gallery);
    insertAfter(description, placeholder);
}
//給a標簽綁定點擊事件
function prepareGallery() {
    if (!document.getElementsByTagName) return false;
    if (!document.getElementById) return false;
    if (!document.getElementById("imagegallery")) return false;

    var galley = document.getElementById("imagegallery");
    var links = galley.getElementsByTagName("a");

    for (var i = 0; i < links.length; i++) {
        links[i].onclick = function() {
            return showPic(this);
        }
        links[i].onkeypress = links[i].onclick;
    }
}
//點擊後執行的函數
function showPic(whichpic) {
    if (!document.getElementById("placeholder")) return true;

    var source = whichpic.getAttribute("href");

    var placeholder = document.getElementById("placeholder");
    placeholder.setAttribute("src",source);

    if (!document.getElementById("placeholder")) return false;

    if (whichpic.getAttribute("title")) {
        var text = whichpic.getAttribute("title");
    } else {
        text = "";
    }
    var description = document.getElementById("description");
    //判斷P標簽中的節點類型 3為文本類型#text 設置文本
    if (description.firstChild.nodeType == 3) {
        description.firstChild.nodeValue = text;
    }
    return false;
}

HTML代碼

<!DOCTYPE html>
<html>

<head>
    <title>圖片庫效果</title>
    <link rel="stylesheet" type="text/css" href="css/style.css">
</head>

<body>
    <h1>點擊圖片效果</h1>
    <ul id="imagegallery">
        <li>
            <a href="img/200u0l000000d8n8xB0E3_R_550_412.jpg" title="第一張圖">
                <img src="img/200u0l000000d8n8xB0E3_R_550_412.jpg" alt="fffd">
            </a>
        </li>
        <li>
            <a href="img/20080o000000f95k889B2_R_550_412.jpg" title="第二張圖">
                <img src="img/20080o000000f95k889B2_R_550_412.jpg" alt="bbf">
            </a>
        </li>
        <li>
            <a href="img/200h0d0000006tsrr8195_R_550_412.jpg" title="第三張圖">
                <img src="img/200h0d0000006tsrr8195_R_550_412.jpg" alt="fff ">
            </a>
        </li>
        <li>
            <a href="img/4b9185dbdb71431ab128af73baf22ce1_R_550_412.jpg" title="第四張圖">
                <img src="img/4b9185dbdb71431ab128af73baf22ce1_R_550_412.jpg" alt="fff ">
            </a>
        </li>
    </ul>
    <script type="text/javascript" src="js/script.js"></script>
</body>

</html>

CSS代碼

h1{
    width: 290px;
    margin: 0 auto;
    height: 60px;
    line-height: 60px;
    text-align: center;
    color: #13af13;
}
#imagegallery{
    width: 290px;
    height: 50px;
    margin: 0 auto;
    padding: 5px 0 0 0;
    background-color: #e2e2e2;
}
#imagegallery li{
    float: left;
    width: 60px;
    list-style: none;
    margin-left: 10px;
}
#imagegallery img ,#imagegallery a{
    text-decoration: none;
    font-style: normal;
    display: block;
    width: 100%;
}
#placeholder{
    display: block;
    border: 4px solid #13af13;
    width: 282px;
    margin: 0 auto;
}
p{
    text-align: center;
}

 


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

-Advertisement-
Play Games
更多相關文章
  • 簡介 將查詢語句查詢的結果集作為數據插入到數據表中。 一、通過INSERT SELECT語句形式向表中添加數據 例如,創建一張新表AddressList來存儲班級學生的通訊錄信息,然後這些信息恰好存在學生表中,則可以從學生表中提取相關的數據插入建好的AddressList表中。 T-SQL語句如下: ...
  • 問題說明:使用的MySQL是5.1.37版本,用的mysql-connector-java-5.0.4.jar版本,在java文件中定義的欄位是Date類型,MySQL中定義的欄位類型是datetime類型的, 嘗試了以下方式都不成功,報的錯誤還是一個,方法如下: 1.第一個方法: // Date ...
  • Hive官方文檔:Home-UserDocumentation Hive DML官方文檔:LanguageManual DML 參考文章:Hive 用戶指南 1. Loading files into tables 當我們做Load操作是,hive不會做任何數據轉換,只是純複製/移動操作,將數據文件 ...
  • Hive官方文檔:Home-UserDocumentation Hive DDL官方文檔:LanguageManual DDL 參考文章:Hive 用戶指南 註意:各個語句的版本時間,有的是在 hive-1.2.1 之後才有的,這些語句我們在hive-1.2.1中是不能使用的。 註意:本文寫的都是常 ...
  • 28年前有人發明www microsoft技術開發人員lot 看論文可以看中國知網 微軟亞洲研究院 WWDC蘋果開發者大會上,蘋果都會發佈一些新的公司發展出的新的產品的新技術。iOS開發,用到的語言有:objective-c swift 還有cocoa touch框架 storyboarding(故 ...
  • 相信做前端的都做過頁面錨點定位的功能,通過`` 去設置頁面內錨點定位跳轉。 本篇文章就使用 、`scrollview`來實現android錨點定位的功能。 效果圖: 實現思路 1、監聽 滑動到的位置, 切換到對應標簽 2、 各標簽點擊, 可滑動到對應區域 自定義scrollview 因為我們需要監聽 ...
  • 因為我們須用節點spritenode.copy()把其它Scene(CircleScene.sks)里的節點拷貝一份,並把拷貝的這一份節點加到當前的scene(GameScene.sks)里,還有一個重要的註意點,就是如果要在GameScene.sks取得 Overlay內的紅色節點的準確坐標,須用... ...
  • flash交互課件能生動表達教學內容,也深受廣大教育工作者的喜愛,但是目前flash課件只能在pc電腦平臺上進行展示,且目前蘋果公司已經不再支持flash各類產品,也就是後續蘋果ios pc系統也已經不能再使用flash產品,隨著移動網路的發展,越來越多的課件產品需要移殖到各種移動平臺(手機,pad ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...