js圖片切換

1.不同方式的圖片切換

功能點:
  1.頁面默認循環切換,循環切換按鈕獲得焦點
  2.點擊順序切換時,順序切換按鈕獲得焦點
    點擊上一張時,當圖片為第一張時,圖片不再進行切換,圖片張數和描述也不在變動;
    點擊下一張時,當圖片為最后一張時,圖片不再進行切換,圖片張數和描述也不在變動;
  2.點擊上一張按鈕時觸發的事件
    點擊上一張時,當圖片為第一張時,圖片切換到最后一張,圖片張數和描述顯示為對應圖片的張數和描述;
    點擊下一張時,當圖片為最后一張時,圖片切換到第一張,圖片張數和描述顯示為對應圖片的張數和描述;
  3.點擊左右按鈕是圖片內容/張數/描述進行相應的變動
開發思路:
  1.實現圖片循序切換:
    聲明變量num,使其初始值為0
    上一張按鈕:每點擊一次,使num減1,當num的值小于0時,使其值等于圖片數組的長度減1;
    下一張按鈕:每點擊一次,使num加1,當num的值大于等于圖片數組的長時,使其值0.
  2.實現圖片順序切換:
    上一張按鈕:每點擊一次,使num減1,當num的值小于0時,使其值等于0;
    下一張按鈕:每點擊一次,使num加1,當num的值大于等于圖片數組的長時,使其值等于圖片數組的長度減1.
  3.點擊左右按鈕觸發的事件:
    根據num來改變相應的數值和索引值
  4.實現切換方式的切換:通過判斷狀態按鈕的className來執行相應的事件函數

<div class="box"><input type="button" name="btn1" id="btn1" value="循環切換"  class="act"/><input type="button" name="btn2" id="btn2" value="順序切換" /><div class="box1"><a href="javascript:;" id="lf_btn">&lt;</a><a href="javascript:;" id="rt_btn">&gt;</a><p>計算中...</p><img src=""/><p>計算中...</p></div>
</div>
*{margin: 0;padding: 0;    
}
.box{width: 500px;margin: 50px auto 0;text-align: center; 
}
input{width: 80px;height: 30px;background: #C0C0C0;border: none;margin: 0 5px;
}
.act{background: palevioletred;
}
.box1{width: 100%;height: 300px;position: relative;margin-top: 20px;background: #ccc;
}
.box1 img{width: 100%;height: 100%;
}
a{position: absolute;top: 50%;width: 50px;height: 50px;text-align: center;color: #fff;font-weight: bold;line-height: 50px;border-radius: 50%;text-decoration: none;background: #C0C0C0;opacity: .6;margin-top: -25px;font-size: 40px;
}
#lf_btn{left: 0;
}
#rt_btn{right: 0;
}
p{width: 100%;background: rgba(0,0,0,.5);height: 30px;color: #fff;position: absolute;left: 0;line-height: 30px;
}
p:nth-of-type(1){top: 0;
}
p:nth-of-type(2){bottom: 0;
}
a:hover{pacity: .8;
}
var lf_btn=document.getElementById("lf_btn");
var rt_btn=document.getElementById("rt_btn");
var oImg=document.getElementsByTagName("img")[0];
var aBtns=document.getElementsByTagName("input");
var arr=[["../demo/鑫/img/1.jpg","../demo/鑫/img/2.jpg","../demo/鑫/img/3.jpg","../demo/鑫/img/4.jpg","../demo/鑫/img/5.jpg"],["圖片一","圖片二","圖片三","圖片四","圖片五"]];
var ps=document.getElementsByTagName("p");
var num=0;
var len=arr[0].length;
//頁面初始化
fn1();
function fn1(){oImg.src=arr[0][num];ps[0].innerText=num+1+'/'+len;ps[1].innerText=arr[1][num];
}
//圖片左右切換
//上一張
fn2();
function fn2(){lf_btn.onclick=function(){num--;if(num<0){num=len-1;}fn1();}//下一張rt_btn.οnclick=function(){num++;if(num>=len){num=0;}fn1();}
}//切換方式轉換
//循環切換
var that=null;
function clear(that){for (var i=0;i<aBtns.length;i++) {aBtns[i].className=" ";}that.className="act";
}
aBtns[0].οnclick=function(){//上一張clear(this);fn2();
}//順序切換
aBtns[1].οnclick=function(){clear(this);//上一張lf_btn.οnclick=function(){num--;if(num<0){num=0;}fn1();}//下一張rt_btn.οnclick=function(){num++;if(num>=len){num=len-1;}fn1();}}

?2.自定義屬性圖片切換

HTML

<div id="box"><img src=""/><ul id="btns"></ul>
</div>

CSS

*{margin: 0;padding: 0;    
}
#box{margin: 20px 0 0 30px;position: relative;width: 400px;text-align: center;
}
#box ul{width: 100%;text-align: center;
}
#box li{list-style: none;display: inline-block;width: 40px;height: 10px;background: #C0C0C0;margin:0 2px;
}
#box img{width: 400px;height: 200px;
}
#box .act{background: palevioletred;
}

JS部分

var oImg=document.getElementsByTagName("img")[0];
var oBtn=document.getElementById("btns");
var Btns=document.getElementsByTagName("li");
var str="";
var imgs=["http://tse4.mm.bing.net/th?id=OIP.eyrAJHrqfyG4JDdYH2R57gEsDg&w=214&h=160&c=7&qlt=90&o=4&pid=1.7","http://tse2.mm.bing.net/th?id=OIP.jYyuulCIIlC-0U8vLeZcPQEsCo&w=300&h=168&c=7&qlt=90&o=4&pid=1.7","http://tse3.mm.bing.net/th?id=OIP.nxOcHfdj3G4tfdQ1da34ngEXDf&w=223&h=174&c=7&qlt=90&o=4&pid=1.7","http://tse3.mm.bing.net/th?id=OIP.yfBtP9Yis8AFz3MIBMiEhgEyDM&w=300&h=200&c=7&qlt=90&o=4&pid=1.7","http://tse1.mm.bing.net/th?id=OIP.jAS8cEFr324zQBQjlfg1EAEyDM&w=297&h=193&c=7&qlt=90&o=4&pid=1.7"];
//頁面初始化
//生成切換按鈕
for (var i=0;i<imgs.length;i++) {str+="<li></li>";
}
oBtn.innerHTML=str;
oImg.src=imgs[0];
Btns[0].className="act";//按鈕點擊切換圖片,主要運用自定義屬性
for (var i=0;i<Btns.length;i++) {Btns[i].index=i;Btns[i].onclick=function(){for (var i=0;i<Btns.length;i++) {Btns[i].className=" ";}this.className="act";oImg.src=imgs[this.index];}
}

?

轉載于:https://www.cnblogs.com/yangxue72/p/7514766.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253411.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253411.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253411.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

網絡攝象機常用傳輸協議

多播路由是一個很好的技術&#xff0c;在Internet上實現了對數據的“廣播”&#xff0c;不同于廣播的是&#xff0c;由于廣播風暴的問題&#xff0c;路由器是禁止廣播數據跨路由傳送的。而多播則很好的解決了這個問題。現在M$軟件如&#xff1a;Netmeeting&#xff0c;WMS就廣泛…

CIS關鍵工藝技術概覽

相機作為一種媒介&#xff0c;可以記錄光所體現的物體&#xff0c;使人們能夠主觀或客觀地表達各種情感和思想。當代人類身處于一個所謂的“數字游牧時代”&#xff0c;人們攜帶各類移動數碼設備&#xff0c;生活不受時空的限制。在當今時代&#xff0c;相較于膠片相機&#xf…

Properties

Properties配置文件說明 Properties類對應.properties文件。文件內容是鍵值對&#xff0c;鍵值對之間使用""或空格隔開。開頭是"#"的表示注釋Properties類在加載.properties文件時使用的iso8859-1的編碼。所以這個文件中的中文要特殊處理&#xff1a;如果這…

1215 - Cannot add foreign key constraint

2019獨角獸企業重金招聘Python工程師標準>>> 參考網頁 https://blog.csdn.net/yiwangxiblog/article/details/52269527 https://blog.csdn.net/ytm15732625529/article/details/53729155 原因--親測 兩張表的存儲引擎不一致。主鍵所在表和外鍵所在表的存儲引擎改成一…

陳敏敏-130242014024-實驗一

實驗報告一 課程 軟件體系結構與設計 實驗名稱 軟件設計的網絡環境 第 頁 專業 軟件工程 班級 1班 學號 130242014024 姓名 陳敏敏 實驗日期&#xff1a; 2017 年 9 月 14 日 報告退發 (訂正 、 重做) 一、實驗目的 1.復習軟件工程的重要概念&…

音頻編碼

http://jsjdmtjs.jpk.dlpu.edu.cn/jxzy/kecheng/4-2.html

jquery 滾動條位置的

$(#fixedHead).width()//div的寬度 $(#fixedHead)[0].scrollWidth//滾動條的寬度 兩者的差為滾動條的寬度var b1$("#div1").height();//div的高度 var b2$(this)[0].scrollTop;//滾動條距離頂端的位置 var b3$(this)[0].scrollHeight;//滾動區的高度 b3b1b2滾動條到底…

Css3實現波浪線效果1

一、波浪線 &#xff0c;常用 .info::before {content: ;position: absolute;top: 30px;width: 100%;height: 0.25em;background:linear-gradient(135deg, transparent, transparent 45%, #008000, transparent 55%, transparent 100%),linear-gradient(45deg, transparent, tr…

ZZUOJ 10508: 數列游戲IV

題目鏈接&#xff1a;http://acm.zzu.edu.cn:8000/problem.php?id10508 題目大意&#xff1a;給定一個序列&#xff0c;長度為N&#xff0c;每次詢問為一組區間[Li,Ri],輸出Li到Ri中出現恰好兩次的不同數的個數. N,M<2*10^5&#xff0c;序列中元素<10^9 解題思路&#x…

dm368ipnc 重寫架構中的swosd 實現中文osd

appro的ipnc中只實現了英文的osd疊加&#xff0c;就連小小的ascii碼表都沒有覆蓋全&#xff0c;而且該swosd架構灰常凌亂。 其實無非就是兩個功能&#xff0c;一是疊加文字&#xff0c;而是疊加圖片&#xff0c;由于考慮到兼容不同的分辨率的視頻流&#xff0c;所以處理的分支相…

JAVA加密算法系列-AesCBC

package ***;import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec;import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder;/** * AES 是一種可逆加密算法&#xff0c;對用戶的敏感信息加密處理 * 對原始數…

dubbo系列(一)

進入官網之后&#xff0c;找到 http://dubbo.apache.org/en-us/docs/user/quick-start.html 有一個鏈接跳轉到這里 http://dubbo.apache.org/en-us/docs/admin/install/provider-demo.html 使用git將項目下載下來 修改如下Service實現類 1 /*2 * Licensed to the Apache Softw…

基于Flask實現后臺權限管理系統 - 表設計

1.1. 設計 1.1.1. 用戶表 用戶表記錄系統中的所有用戶&#xff0c;是權限管理系統最基本的部分&#xff0c;和其他權限表都有一定的關聯關系&#xff0c;同時&#xff0c;一個還有一個重要的功能&#xff1a;系統登陸。 名稱 數據類型 允許空值 默認值 描述 ID VARCHAR …

DM8168的McSPI/McASP/McBSP接口

McSPI接口 SPI管腳&#xff1a; 管腳 類型 描述 SPI_SCLK I/O SPI串行時鐘&#xff08;MASTER時&#xff1a;輸出&#xff1b;SLAVE&#xff1a;輸入&#xff09; SPI_D0 I/O 能被配置為輸入或輸出&#xff08;MOSI&#xff1a;master out&#xff0c;slave in或MISO&…

Sencha ID的注冊

sencha id的注冊用不著翻墻&#xff0c;直接訪問下面的地址https://www.sencha.com/forum/register.php輸入你的個人信息敞開來注冊&#xff0c;我的注冊名為charlie2018w非常順利的過程你免費注冊的id只能用30天。擁有這個id你就可以在eclipse或者sencha artchitect3或者webst…

ansible安裝

1、簡介 ansible是新出現的自動化運維工具&#xff0c;基于Python開發&#xff0c;集合了眾多運維工具&#xff08;puppet、cfengine、chef、func、fabric&#xff09;的優點&#xff0c;實現了批量系統配置、批量程序部署、批量運行命令等功能。ansible是基于模塊工作的&#…

《大道至簡》第一章偽代碼

o愚公移山偽代碼 Import.java Import.java Punlic class yugongyishan { Public static void main (string [] args) { while(山不平&#xff0c;&#xff0c;) {畢力平險&#xff0c;指通豫南&#xff0c;達于漢陰&#xff1b;叩石墾壤&#xff0c;箕?于渤海之尾&#xff1b;…

Verilog Matlab 聯合仿真

一、概述 在進行仿真時&#xff0c;有時候一部分參考模型&#xff08;reference model&#xff09;來自于Matlab&#xff0c;這就需要通過某種方法調用并運行Matlab的參考模型。verilog并不支持直接調用Matlab&#xff0c;但是可以通過DPI接口調用C函數&#xff0c;而Matlab又預…

轉 alsa錄音放音執行流程詳解

前言&#xff1a; linux中&#xff0c;無論是oss還是alsa體系&#xff0c;錄音和放音的數據流必須分析清楚。先分析alsa驅動層&#xff0c;然后關聯到alsa庫層和應用層。 鏈接分析&#xff1a; core/pcm_native.c文件中.mmap snd_pcm_mmap調用snd_pcm_mmap_data(substream, fi…

jenkins之qq企業郵箱配置

一、配置qq企業郵箱 1、登錄jenkins后臺管理&#xff0c;選擇 系統管理 ? 系統設置 2、SMTP server配置 3、郵件通知配置 配置ssl等參數 點擊 高級 4、發送郵件測試 總結&#xff1a;郵箱配置不成程分析 1、管理員賬號和默認發送賬號不一致。2、smtp服務器設置不正確;qq企業…