js 判斷鍵盤(pán)上下左右按鍵事件

創(chuàng)新互聯(lián)公司是專(zhuān)業(yè)的青龍網(wǎng)站建設(shè)公司,青龍接單;提供網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站,網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專(zhuān)業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行青龍網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專(zhuān)業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專(zhuān)業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!
document.onkeydown=function(event){
var e = event || window.event || arguments.callee.caller.arguments[0];
if(e e.keyCode==38 || e e.keyCode==37){//上,左
alert('38=上鍵,37=左鍵');
}
if(e e.keyCode==40 || e e.keyCode==39){//下,右
alert('38=下鍵,37=右鍵');
}
};
我們?cè)?CSS 階段就已經(jīng)接觸到輪播圖。通過(guò)輪播圖我們可以達(dá)到一些好玩的特效,但使用 CSS 做出來(lái)的輪播圖只有左右切換,漸變切換和簡(jiǎn)單的點(diǎn)擊切換。局限性較大,觀看效果也不佳。但當(dāng)我們接觸 js 之后,你就發(fā)現(xiàn)使用js來(lái)實(shí)現(xiàn)輪播圖后,在看CSS實(shí)現(xiàn)輪播的效果就是...。我想說(shuō)啥你知道的。廢話不多說(shuō),咱們一起看看如何使用js來(lái)實(shí)現(xiàn)輪播效果。
(本文以陰陽(yáng)師中“平安世界”模塊的輪播圖為例)
這個(gè)輪播圖,我們通過(guò)兩大模塊構(gòu)成;左右點(diǎn)擊模塊和姓名點(diǎn)擊模塊。然后在兩者相關(guān)聯(lián)來(lái)達(dá)到最終的效果。
在使用js實(shí)現(xiàn)輪播圖的效果前,先使用HTML和CSS完善這一模塊的布局。
本輪播圖使用8張圖片。每次出現(xiàn)兩張。我們?cè)谑褂肏TML和CSS布局時(shí)可以先把第一組的兩張圖片放好位置。其他的放在兩邊隱藏起來(lái)。需要使用的時(shí)候在出現(xiàn)移動(dòng)到中間。
左右點(diǎn)擊切換模塊:
我們通過(guò)對(duì)左右按鈕進(jìn)行點(diǎn)擊監(jiān)聽(tīng)。在點(diǎn)擊后做出反應(yīng)。左右點(diǎn)擊的思路一樣。我們先說(shuō)一下右邊按鈕點(diǎn)擊事件。
當(dāng)我們點(diǎn)擊右邊按鈕后,我們通過(guò)對(duì)點(diǎn)擊次數(shù)進(jìn)行累計(jì)。此處我使用初始化常量然后累加最后通過(guò)判斷來(lái)達(dá)到循環(huán)效果
對(duì)每一張圖片進(jìn)行編碼,以此來(lái)達(dá)到循環(huán)切換圖片的效果。在切換圖片時(shí),我們可以使用排他思想。當(dāng)點(diǎn)擊按鈕切換下一張圖片的時(shí)候,我們可以先遍歷所有的圖片,把所有的圖片移動(dòng)到兩邊,然后將要移動(dòng)的圖片移動(dòng)到中央來(lái)達(dá)到切換效果
在移動(dòng)的過(guò)程中的動(dòng)畫(huà)和定時(shí)器設(shè)置的延遲可以自己添加一下。
左邊按鈕的原理和右邊一樣反操作即可。注意常量要使用一個(gè)。否則兩個(gè)按鈕都只能單方向運(yùn)動(dòng),可能還會(huì)出現(xiàn)其他問(wèn)題。
本次現(xiàn)講一下左右切換的思路。
var datas = [
{imgSrc:"(圖片 )"},
{imgSrc:"(圖片 )"},
{imgSrc:"(圖片 )"},
{imgSrc:"(圖片 )"},
{imgSrc:"(圖片 )"},
{imgSrc:"(圖片 )"}
];
var banner = document.getElementById("banner");
var list = document.getElementById("list");
for(var i = 0,len = datas.length;ilen;i++){
var div = document.createElement("div");
var li = document.createElement("li");
if(i==0){ //默認(rèn)第一項(xiàng)輪播項(xiàng)顯示 對(duì)應(yīng)的控制按鈕被選中
div.className = "item active";
li.className = "active";
}else{ //其他項(xiàng)隱藏 其他的控制按鈕樣式不改變
div.className = "item";
li.className = "";
}
div.innerHTML = 'a href="' + datas[i].targetSrc + '"' +
'img src="' + datas[i].imgSrc + '" /' +
'/a';
li.innerHTML = i + 1;
banner.appendChild(div);
list.appendChild(li);
}
var lunBo = document.getElementById("lunBo");
var items = document.querySelectorAll("#lunBo #banner .item");
var lis = document.querySelectorAll("#lunBo #list li");
var currentIndex = 0;//(控制按鈕和輪播項(xiàng)共同的索引)
for(var i = 0,len = lis.length;ilen;i++){
lis[i].index = i;
lis[i].onmouseenter = function(){
currentIndex = this.index;
for(var j = 0;jlen;j++){
lis[j].className = "";
items[j].className = "item";
}
this.className = "active";
items[this.index].className = "item active";
}
}
var termId; //全局變量
function autoPlay(){
termId = setInterval(function(){
currentIndex++;
if(currentIndex==lis.length){
currentIndex = 0;
}
lis[currentIndex].onmouseenter();
},3000);
}
autoPlay();//打開(kāi)頁(yè)面自動(dòng)輪播
//鼠標(biāo)進(jìn)入停止輪播
lunBo.onmouseenter = function(){
clearInterval(termId);
}
//鼠標(biāo)離開(kāi)繼續(xù)輪播
lunBo.onmouseleave = function(){
autoPlay();
}
我這還有其他的,先采納一下加我,我給你發(fā)
使用javascript定時(shí)器函數(shù)setTimeout()每隔一定的毫秒間隔數(shù)執(zhí)行動(dòng)作,在執(zhí)行的動(dòng)作中循環(huán)替換圖片的src屬性。樹(shù)立演示如下:
1、HTML結(jié)構(gòu)
img?src="1.png"?id="test"
2、javascript代碼
function?change(n){ if(n5)?n=1;??//?一共5張圖片,所以循環(huán)替換 document.getElementById("test").setAttribute("src",?n+".png"); n++; setTimeout("change("+n+")",1000);}window.onload?=?function(){ setTimeout("change(1)",?1000);}
3、效果演示
這樣:
!DOCTYPE html
html
head
meta charset="UTF-8"
title動(dòng)態(tài)切換圖片/title
/head
style
ul{
padding:0;margin:0;
}
li{
list-style: none;
}
#pic{
position: relative;
width: 400px;
height: 400px;
background-color:red;
margin:100px auto;
background:url('image/1.jpg') no-repeat center;
}
#pic img{
width: 400px;
height: 400px;
}
#pic ul{
width: 50px;
position: absolute;
top: 0;
right: -70px;
}
li{
width: 40px;
height: 40px;
margin-bottom:10px;
background-color: pink;
float: left;
}
#pic span{
position: absolute;
bottom: 10px;
left: 0;
}
#pic p,#pic span{
width: 400px;
height: 20px;
}
#pic p{
position: absolute;
top: 10px;
left: 0;
}
.active{
background-color: red;
}
/style
body
div id="pic"
img src="" alt=""
pqwrwe/p
spanwerwer/span
ul
/ul
/div
script
window.onload=function(){
//存放舊li
var oldLi=null;
var num=0;
var oPic = document.getElementById('pic');
var oImg = oPic.getElementsByTagName('img')[0];
var oUL =? oPic.getElementsByTagName('ul')[0];
var oSpan= oPic.getElementsByTagName('span')[0];
var oP = oPic.getElementsByTagName('p')[0];
var oLi= oUL.getElementsByTagName('li');
var arr=['image/1.jpg','image/2.jpg','image/3.jpg','image/4.jpg'];
var aText = ['圖片1','圖片2','圖片3','圖片4'];
for(var i=0;iarr.length;i++){
//動(dòng)態(tài)添加元素
oUL.innerHTML+='li/li';
}
// 舊li就等于當(dāng)前的
oldLi=oLi[num];
// 初始化
oImg.src=arr[num];
oP.innerHTML=num+1+'/'+arr.length;
oSpan.innerHTML=aText[num];
oLi[num].className='active';
for(var i=0;iarr.length;i++){
// 給元素自定義屬性
//
oLi[i].index=i;
oLi[i].onclick=function(){
// 當(dāng)元素被點(diǎn)擊時(shí)圖片文字信息都一起變化
oImg.src=arr[this.index];
oP.innerHTML=1+this.index+'/'+arr.length;
oSpan.innerHTML=aText[this.index];
// 清空上一個(gè) 當(dāng)前添加
oldLi.className='';
//將上一個(gè)給當(dāng)前
oldLi=this;
this.className='active';
}
}
}
/script
/body
/html
擴(kuò)展資料:
注意事項(xiàng)
1、可以通過(guò)JS刪除和添加hidden屬性,改用style.display="none"和style.display="inline"來(lái)實(shí)現(xiàn)隱藏和顯示。
2、button屬性,主要的問(wèn)題時(shí)button樣式的問(wèn)題,如何才能做一個(gè)好看的button,通過(guò)查找找到了設(shè)置button相關(guān)的值。
border:none; 設(shè)置按鈕無(wú)邊框
outline:none;消除按鈕點(diǎn)擊后出現(xiàn)的表示被點(diǎn)擊的邊框
background:url(...)按鈕背景圖片
text-shadow: 0 1px 1px rgba(0,0,0,.3);文字陰影
box-shadow: 0 5px 7px rgba(0,0,0,.2);按鈕陰影
border-radius:15px;按鈕邊框圓角
當(dāng)前文章:javascript左右,javascript左右移動(dòng)的方塊
網(wǎng)站路徑:http://chinadenli.net/article41/dsgeehd.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、、標(biāo)簽優(yōu)化、網(wǎng)站制作、虛擬主機(jī)、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)