使用js做創建圖片及刪除圖片 若有什麼不對或不完整的地方,請大家提出來,謝謝

来源:http://www.cnblogs.com/dzlx/archive/2017/12/19/8068042.html
-Advertisement-
Play Games

首先我們要在<body>中創建一個按鈕<button>來用作點擊創建圖片,在<button>中寫一個點擊事件(隨便命名), 在創建一個<div>存放圖片,在<div>中創建一個id(跟上面一樣隨便命名) 代碼如下: <button onclick="hehe()">創建圖片</button> <di ...


首先我們要在<body>中創建一個按鈕<button>來用作點擊創建圖片,在<button>中寫一個點擊事件(隨便命名),

在創建一個<div>存放圖片,在<div>中創建一個id(跟上面一樣隨便命名)

代碼如下:

 <button onclick="hehe()">創建圖片</button>
        <div id="imgsId"></div>

再寫幾個需要用到的樣式:

我們先定義一個haol(隨便定義的),裡面transition:all 3s表示動畫屬性,所有都是3s,

代碼如下:

 .haol{
           transition:all 3s;
        }

再定義一個旋轉(這點我是百度上面的),語法是:@keyframes myfirst{ to{} from}
        @keyframes myfirst{
            to{
                transform: rotate(0deg);
            }
            from{
                transform: rotate(160deg);         //旋轉160度
            }
        }

定義一個透明度(與上相同)
        @keyframes myfirst2{
            to{
                filter:alpha(Opacity=10);    //opacity透明度,
                opacity: 0.1;
            }
            from{
                filter:alpha(Opacity=80);
                opacity: 1;
            }
        }

定義一個over-out:animation動畫屬性
        .over-out{
            animation: myfirst 1s;
        }
       定義一個over-out1:animation動畫屬性 .over-out1{
            animation: myfirst2 2s;
        }

好,準備工作做完之後,我們來寫js部分,

首先,我們不能忘記寫開頭:

<script language="JavaScript"></script>

然後在這中間我們來寫具體部分:

我們可以用"$"來獲取指定網頁元素的函數,使用非常之頻繁,

代碼如下:

 function $(oId){
             var obj=document.getElementById(oId);
            return obj;
        }

從上我們可以看出,在function中使用$定義一個參數為oId(隨便定義)

然後在定義var 來使用document.getElementById來定義id。

因為js為弱性語言,它是依此解析,所以在前面必須寫window.event,進行相容

代碼如下:

  window.event = function(){}

現在我們寫創建圖片的js部分,先創建一個function setimge(){},然後在裡面寫內容

function setimge(){

  先定義數組來存放圖片,我們可以用Array();如

  var tupian = obj.Array();

  然後再用tupian.push("n1.jpg");存儲圖片,這裡我存放了五張圖片

  tupian.push("n2.jpg");

  tupian.push("n3.jpg");

  tupian.push("n4.jpg");

  tupian.push("n5.jpg");

  可以根據情況而定;

我們再用for迴圈

for(var i = 0;i<tupian.length;i++)

tupian.length是它的圖片,

再定義一個var來創建img;

var imgObj = document.createElement("img");

創建一個var來裝tupian[i],

var imgss = tupian[i];

在把scr賦值給imgss,

imgObj.src = imgss;

然後把function定義的addClass添加進來(這個後面會講到,現在先寫在這裡)

addClass(imgsObj,"haol");

我們可以用定義的imgObj來給一些值(在這裡先給它賦初值0px):

imgObj.style. imgsObj.style.width = "0px";
imgObj.style.marginLeft = "0px";    

在使用$符裡面寫<div>中寫的id值,appendChild是添加子元素

 $("imgsId").appendChild(imgsObj);         

}

其實圖片在點擊按鈕之前已經創建,只是我們看不見,因為我剛剛賦值為0px;

現在我們function中寫button中的onclick="hehe()",

function hehe(){

先定義一個var 來獲取img

var tupian = $("imgsId").getElementsByTagName("img");

再使用for迴圈

for(var i = 0;i<tupian.length;i++)

創建一個var來裝tupian[i],

var imgss = tupian[i我們可以賦一些值

imgsObj.style.width = "200px";
imgsObj.style.marginLeft = "20px";

現在點擊創建圖片按鈕,我們只是將圖片放大而已。

然後我們把游標移到圖片上,讓圖片旋轉,點擊讓它有提示框進行刪除,刪除時,圖片是慢慢消失。

首先寫游標移到圖片上,onmouseover就是游標移到圖片上;

 imgsObj.onmouseover = function(){
                    addClass(this,"over-out");      // 、this表示上層中的imgsObj
                }

然後是游標移出圖片上:
                imgsObj.onmouseout = function(){
                    removeClass(this,"over-out");
                }

做點擊圖片刪除:
                imgsObj.onclick = function(){
                     var ev=window.event;
                     var obj = ev.currentTarget;
                     removeimgs(obj);
                }
現在我們來做上面提到的addClass(),傳參數

首先定義function addClass(obj,cn){

  定義一個cName獲取obj的classname;

  然後是用if判斷cName的長度是否為0;

if(cNmae.length==0){

  是的話,obj.cName= cn,

}else{

  不是的話,obj.cName = (" "+cn);

}

}

 

然後是移除function.removeClass(obj , cn){  //跟上面一樣,先給參數,

 定義一個cs獲取obj的classname;

cs = cs.split();  //split拆分字元串

 for (var i = 0; i < cs.length; i++) {  //for迴圈
                if (cs[i]==cn) {  判斷cs[i] 是不是等於cn
                cs.splice(i, 1);  //splice(i,1)表示刪除i中第1個內容
            }
        }
            obj.className = cs.join(" ");//拆分完之後再重新連接
        }

}

現在做刪除圖片了

function removeimgs(obj,cnn){
            var f = window.confirm('是否要刪除該圖片');      //confirm提示框
            if(f){
                addClass(obj,"over-out1");

setTimeout()方法用於在指定的毫秒數後調用函數或計算表達式
                setTimeout(function(){      

西安要找出父類,然後讓父類進行刪除        
                    obj.parentNode.removeChild(obj);
                },2000);

            }else{
                alert("取消刪除");
            }

        }

 

程式基本做完了,完整代碼如下:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <style type="text/css">
       c
    </style>
    <script language="JavaScript">
        function $(oId){
             var obj=document.getElementById(oId);
            return obj;
        }

        function addClass(obj, cn){
            var cName = obj.className;
                if(cName.length==0){
                    obj.className = cn;
                }else{
                    obj.className+=(" "+cn);
                }
         }
        function removeClass(obj, cn) {
            var cs = obj.className;
            cs = cs.split(" ");
            for (var i = 0; i < cs.length; i++) {
                if (cs[i]==cn) {
                cs.splice(i, 1);
            }
        }
            obj.className = cs.join(" ");
        }
        function removeimgs(obj,cnn){
            var f = window.confirm('是否要刪除該圖片');
            if(f){
                addClass(obj,"over-out1");
                setTimeout(function(){
                    obj.parentNode.removeChild(obj);
                },2000);

            }else{
                alert("取消刪除");
            }

        }

        function setimgs(){
            var tupian = Array();
            tupian.push("n1.jpg");
            tupian.push("n2.jpg");
            tupian.push("n3.jpg");
            tupian.push("n4.jpg");
            tupian.push("n5.jpg");
            for(var i = 0;i<tupian.length;i++){
                var imgsObj = document.createElement("img");
                var imgss = tupian[i];
                imgsObj.src = imgss;
                addClass(imgsObj,"haol");
                imgsObj.style.width = "0px";
                imgsObj.style.marginLeft = "0px";
                $("imgsId").appendChild(imgsObj);
            }
        }

        window.onload = function(){
            setimgs();
        }
        function hehe(){
           var tupian = $("imgsId").getElementsByTagName("img");
            for(var i = 0;i<tupian.length;i++){
                var imgsObj = tupian[i];
                imgsObj.style.width = "200px";
                imgsObj.style.marginLeft = "20px";
                imgsObj.onmouseover = function(){
                    addClass(this,"over-out");
                }
                imgsObj.onmouseout = function(){
                    removeClass(this,"over-out");
                }
                imgsObj.onclick = function(){
                     var ev=window.event;
                     var obj = ev.currentTarget;
                     removeimgs(obj);
                }
            }
        }
    </script>
</head>
<body>
      <button onclick="hehe()">創建圖片</button>
        <div id="imgsId"></div>
</body>
</html

 


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

-Advertisement-
Play Games
更多相關文章
  • HBuilder開發iPad程式不能全屏顯示的解決方法: targets選擇HBuilder=>Deployment Info=> devices選擇Universal即可 ...
  • 1.現有的幾種埋點技術的實現原理和優劣分析 (1)代碼埋點:將收集數據的代碼直接寫在需要的地方,當用戶點擊某個控制項或者打開某個頁面時調用到該部分代碼完成數據的收集。 優勢:準確性高,收集數據和發送數據都能精確控制,同時能方便的設置自定義屬性,自定義控制項,自定義View等。 劣勢:埋點工作量大,更新代 ...
  • 項目開發中,有時候我們需要將本地的文件上傳到伺服器,簡單的幾張圖片還好,但是針對iPhone裡面的視頻文件進行上傳,為了用戶體驗,我們有必要實現斷點上傳。其實也不是真的斷點,這裡我們只是模仿斷點機制。 需求 既然需要上傳文件,那最好要有一個上傳列表界面,方面用戶對上傳中的文件進行實時管理。這裡我簡單 ...
  • 一直以來,大家都苦惱怎麼實現微信公眾帳號可以接入客服,也因此很多第三方介面平臺也開發客服系統CRM系統,不過不是操作複雜就是成本太高。今天分享一個低成本又簡便的方法,讓你的公眾帳號接入QQ客服。下麵介紹具體的方法:1、首先,這個方法目前微信最新的手機版本都是適用的,測試過微信5.0安卓版本還有點問題 ...
  • 在最近的移動端佈局當中,最炙手可熱的方式便是使用rem進行元素的佈局。以下便是從最近的文章中所總結出來的一點東西。 首先,我們必須有以下的疑問: rem的本質是什麼? rem如何實現自適應佈局? 如何根據設計稿來調整rem的值? rem佈局是能純CSS還是必須JS進行輔助? 接著,我們來稍微解答或者 ...
  • JavaScript是世界上最流行的腳本語言,因為你在電腦、手機、平板上瀏覽的所有的網頁,以及無數基於HTML5的手機App,交互邏輯都是由JavaScript驅動的。 簡單地說,JavaScript是一種運行在瀏覽器中的解釋型的編程語言。 在Web世界里,只有JavaScript能跨平臺、跨瀏覽器 ...
  • 各種遍歷對象的方法返回值的不同 前置代碼: function Obj() { // 直接在this上添加屬性 this.prop_this = 'prop_this'; // 在this上添加symbol屬性 this[Symbol.for('prop_symbol')] = 'prop_symbo ...
  • 從模塊流可以看出,這個NodeWatchFileSystem模塊非常深,這裡暫時不會深入到chokidar模塊,有點太偏離本系列文章了,從WatcherManager開始講解。 流程如圖: 源碼非常簡單,包括一個工廠函數與兩個原型方法,整理如下: 包含一個容器類和三個實例方法,每一次調用watchF ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...