问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用js实现一个页面可以用键盘左右方向键控制两张图片切换

发布网友 发布时间:2022-04-29 04:35

我来回答

3个回答

懂视网 时间:2022-05-12 06:31

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css">
.wrap {
margin: 150px auto;
position: relative;
width: 400px;
height: 300px;
overflow: hidden;
border: 2px solid #000;
} 
.wrap img {
position: absolute;
}
</style>
</head>
<body>
<p>
<img src="pic/1.jpg" style="left:0;top:0" />
<img src="pic/2.jpg" style="left:0;top:100%" />
</p>
<script type="text/javascript" src="js/startmove.js?1.1.10"></script>
<script type="text/javascript">
(function(){
var data = ["pic/1.jpg","pic/2.jpg","pic/3.jpg","pic/4.jpg"];
var img = document.querySelectorAll('img');
var now = 0;
var next = 0;
var imgW = css(img[0],"width");
var imgH = css(img[0],"height");
var isMove = false;
document.addEventListener('keyup', function(e) {
if(isMove){
return;
}
switch(e.keyCode){
case 37:
//向左
toLeft();
break;
case 38:
//向上
toUp();
break;
case 39:
//向右
toRight();
break;
case 40:
//向下
toDown();
break; 
}
});
function toLeft(){
next = (now + 1)%data.length;
init([0,0,0,imgW],{left:-imgW},{left:0});
}
function toUp(){
next = (now + 1)%data.length;
init([0,0,imgH,0],{top:-imgH},{top:0});
}
function toRight(){
next = (now - 1 + data.length)%data.length;
init([0,0,0,-imgW],{left:imgW},{left:0});
}
function toDown(){
next = (now - 1 + data.length)%data.length;
init([0,0,-imgH,0],{top:imgH},{top:0});
}
// styles = [0,0,0,0];
// target1 {}
//init 初始位置
function init(styles,target1,target2){
isMove = true;
img[0].src= data[now];
img[1].src= data[next];
css(img[0],"top",styles[0]);
css(img[0],"left",styles[1]);
css(img[1],"top",styles[2]);
css(img[1],"left",styles[3]);
now = next;
move(img[0],target1);
move(img[1],target2,function(){
isMove = false;
});
}
// 移动
function move(el,target,callBack){
startMove({
el:el,
target:target,
type: "easeOut",
time: 1000
});
}
})(); 
</script>
</body>
</html>
//动画形式公式
var Tween = {
linear: function (t, b, c, d){
return c*t/d + b;
},
easeIn: function(t, b, c, d){
return c*(t/=d)*t + b;
},
easeOut: function(t, b, c, d){
return -c *(t/=d)*(t-2) + b;
},
easeBoth: function(t, b, c, d){
if ((t/=d/2) < 1) {
return c/2*t*t + b;
}
return -c/2 * ((--t)*(t-2) - 1) + b;
},
easeInStrong: function(t, b, c, d){
return c*(t/=d)*t*t*t + b;
},
easeOutStrong: function(t, b, c, d){
return -c * ((t=t/d-1)*t*t*t - 1) + b;
},
easeBothStrong: function(t, b, c, d){
if ((t/=d/2) < 1) {
return c/2*t*t*t*t + b;
}
return -c/2 * ((t-=2)*t*t*t - 2) + b;
},
elasticIn: function(t, b, c, d, a, p){
if (t === 0) { 
return b; 
}
if ( (t /= d) == 1 ) {
return b+c; 
}
if (!p) {
p=d*0.3; 
}
if (!a || a < Math.abs(c)) {
a = c; 
var s = p/4;
} else {
var s = p/(2*Math.PI) * Math.asin (c/a);
}
return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
},
elasticOut: function(t, b, c, d, a, p){
if (t === 0) {
return b;
}
if ( (t /= d) == 1 ) {
return b+c;
}
if (!p) {
p=d*0.3;
}
if (!a || a < Math.abs(c)) {
a = c;
var s = p / 4;
} else {
var s = p/(2*Math.PI) * Math.asin (c/a);
}
return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b;
}, 
elasticBoth: function(t, b, c, d, a, p){
if (t === 0) {
return b;
}
if ( (t /= d/2) == 2 ) {
return b+c;
}
if (!p) {
p = d*(0.3*1.5);
}
if ( !a || a < Math.abs(c) ) {
a = c; 
var s = p/4;
}
else {
var s = p/(2*Math.PI) * Math.asin (c/a);
}
if (t < 1) {
return - 0.5*(a*Math.pow(2,10*(t-=1)) * 
Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
}
return a*Math.pow(2,-10*(t-=1)) * 
Math.sin( (t*d-s)*(2*Math.PI)/p )*0.5 + c + b;
},
backIn: function(t, b, c, d, s){
if (typeof s == 'undefined') {
 s = 1.70158;
}
return c*(t/=d)*t*((s+1)*t - s) + b;
},
backOut: function(t, b, c, d, s){
if (typeof s == 'undefined') {
s = 2.70158; //回缩的距离
}
return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b;
}, 
backBoth: function(t, b, c, d, s){
if (typeof s == 'undefined') {
s = 1.70158; 
}
if ((t /= d/2 ) < 1) {
return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
}
return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
},
bounceIn: function(t, b, c, d){
return c - Tween['bounceOut'](d-t, 0, c, d) + b;
}, 
bounceOut: function(t, b, c, d){
if ((t/=d) < (1/2.75)) {
return c*(7.5625*t*t) + b;
} else if (t < (2/2.75)) {
return c*(7.5625*(t-=(1.5/2.75))*t + 0.75) + b;
} else if (t < (2.5/2.75)) {
return c*(7.5625*(t-=(2.25/2.75))*t + 0.9375) + b;
}
return c*(7.5625*(t-=(2.625/2.75))*t + 0.984375) + b;
}, 
bounceBoth: function(t, b, c, d){
if (t < d/2) {
return Tween['bounceIn'](t*2, 0, c, d) * 0.5 + b;
}
return Tween['bounceOut'](t*2-d, 0, c, d) * 0.5 + c*0.5 + b;
}
}
// 获取或者设置样式
function css(el,attr,val){
if(arguments.length == 2){
if(el.currentStyle){
val = el.currentStyle[attr];
} else {
val = getComputedStyle(el)[attr];
}
return parseFloat(val);
} else {
if(attr == "opacity"){
el.style.opacity = val;
el.style.filter = "alpha(opacity= "+val*100+")";
} else if(attr == "zIndex"){
el.style[attr] = Math.round(val);
}else {
el.style[attr] = val + "px";
}
}
}
//执行动画
function startMove(init){
clearInterval(init.el.timer);
var t = 0; 
var b = {};
var c = {};
var d = init.time/20;
for( var s in init.target){ 
b[s] = css(init.el,s);
c[s] = init.target[s] - b[s];
} 
init.el.timer = setInterval(function(){
t++;
if(t > d){
clearInterval(init.el.timer);
init.callBack&&init.callBack();
} else {
for(var s in init.target){
var val = Tween[init.type](t,b[s],c[s],d);
css(init.el,s,val);
}
}
},20);
}

热心网友 时间:2022-05-12 03:39

用js的 event.keyCode来获取方向键。

从网上你可以查到左右方向键对应的keyCode值,这样你就能获取到左右键点击事件了。
然后当左右键点击的时候,触发显示和隐藏对应图片的功能。
图片的显示和隐藏,你可以用js给对应的图片添加显示或者隐藏的css。
这样就能实现你要的效果了追问有要求用原生js实现...

追答如果你想简单点,给2张图片设置不同的id
当点击左的时候,给第一张图显示的css,第二张隐藏的css。点击右的时候也添加对应的css。

热心网友 时间:2022-05-12 04:57

支持多张图片

<html>

<head>
    <title>循环</title>
    <style>
        img {
            width: 100px;
        }
    </style>
</head>

<body>
    <div id="divImg">
        <img src="https://tb2.bdstatic.com/tb/static-common/img/search_logo_big_v1_8d039f9.png" />
        <img src="https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo_top_86d58ae1.png" style="display: none;" />
        <img src="http://s1.bdstatic.com/r/www/cache/mid/static/xueshu/img/logo_4b1971d.gif" style="display: none;" />
    </div>
    <script type="text/javascript" charset="UTF-8">
        var n = 0;
        var arr = document.getElementsByTagName('img');
        document.onkeydown = function (event) {
            for (var i = 0; i < arr.length; i++) {
                arr[i].style.display = 'none';
            }
            var e = event || window.event || arguments.callee.caller.arguments[0];
            if (e && e.keyCode == 37) { // 按 <-
                n--;
                if (n < 0) {
                    n = arr.length - 1;
                }
            }
            if (e && e.keyCode == 39) { // 按 -> 
                n++;
                if (n >= arr.length) {
                    n = 0;
                }
            }
            arr[n].style.display = 'block';
        };
    </script>
</body>

</html>

用js实现一个页面可以用键盘左右方向键控制两张图片切换

用js的 event.keyCode来获取方向键。从网上你可以查到左右方向键对应的keyCode值,这样你就能获取到左右键点击事件了。然后当左右键点击的时候,触发显示和隐藏对应图片的功能。图片的显示和隐藏,你可以用js给对应的图片添加显示或者隐藏的css。这样就能实现你要的效果了 ...

js如何点击左右按钮切换图片

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;i&lt;arr.length;i++){ //动态添加元素

javascript代码实现键盘控制方向

请按方向键←↑→↓ 如不能显示效果,按Ctrl+F5刷新。

怎么实现左右箭头和下面的索引同步切换图片

如果要实现鼠标点击该剪头切换图片的话,这个在网上很多js代码实现,很简单 如果要实现键盘同步的话,需要网页代码里插入监控键盘的代码哦 建议在网上搜索代码特效一类的网站,有很多免费的代码可以下载下来测试修改的了 估计这里不会有谁直接把一大堆代码复制粘贴给你,因为大部分需要调用js和css文件才能实现...

...浏览器的工具栏怎么实现下图出现的两个窗口,js中如何实现?【急急急...

1:光标指到最后的子菜单时,按下键盘上的Prtscr Sys Rq(笔记本)或Pr Scr(印屏幕,台式机大键盘)键。2:然后打开附件里的画图程序,(开始/所有程序/附件/画图)。3:按键盘上的ctrl+V键,即粘贴刚才用打印屏幕键截下来的图片。4:裁剪去不要的部分。保存就可以了。此时,在画图窗口,用QQ截图...

js 有三个按钮 点击哪一个将它的背景换成红色底的一张图片,另外两...

1、依次点击开始-附件-画图;2、打开,然后在指定目录找到你要修改的照片;3、点击工具栏中的填充(桶装图标)-在颜色栏中选白色;4、在照片蓝色区域点一下,可以看到,大部分蓝底已经变成白底,只有头像边缘部分还是明显蓝色;5、点击工具中铅笔,然后点击颜色栏中的白色;6、按住键盘上的Ctrl键(键盘...

js怎么给一个按钮添加两个事件

1.在输入框输入页码,按回车后,跳转到对应的页面 2.在输入框输入页码,点击后面的确定按钮,,跳转到对应的页面 这里其实不是把两个事件都绑定到按钮上.而是输入框和按钮各一个.输入框相应回车事件,按钮相应点击事件.及input的onkeydown或onkeypress事件,与按钮的click事件.你可以写一个方法来实现到目标页...

JS问题:想通过键盘上的一个空格键来控制网页中的按钮, 比如按一下空格...

获取空格的ascii值,然后在方法中定义一个全局变量,当触发空格的时候就去执行按钮1,然后记录全局变量的值,再触发时再执行按钮2,记录全局变量的值。我能想到的就是这样,具体实现方法要你自己去控制啊!

用键盘上下键实现表格行的上下选择的JS代码怎么写

键盘方向键控制表格-学无忧(www.xue51.com) 第一行 第二行 第三行 第四行

用js怎么写一个回车键盘事件?

只要你定义了这些键的动作,你在浏览器里按下这些键就会响应,兼容目前所有浏览器。我做了一个jsp页面,里面有个搜索的功能,搜索是一个放大镜模样的图片,我给了个链接去执行函数,具体代码是: 现在用鼠标点这个搜索图片是没问题的 有搜索条件输入框不?有的话就在输入框加上onkeypress="if (event....

键盘左右键不能用怎么恢复键 键盘的wsad与方向键兑换了 键盘上下左右键不能用 键盘一直自动按一个键 键盘左右键不能换格 键盘方向键和wasd反了 达尔优键盘方向键和wasd反了 键盘方向键 键盘方向键失灵
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
胶原蛋白线双眼皮是不是永久性 双眼皮埋线是蛋白质还是尼龙绳-双眼皮埋线蛋白线多久能吸收 人体输液的“港口”完全植入式输液港 双眼皮宽变窄修复的方法 同心保家庭重疾险靠不靠谱?便宜吗? 做完双眼皮一宽一窄怎么办 喝全脂奶粉对长高有没有什么好处? redmine中“选择一个项目..."下拉列表框中为什么只列出一个项目,我建... 南充市龙门中学实力现在怎样?他的奥赛班是重点班么? 感情中为什么总是不知足呢? 怎样用jquery/js 实现中英文切换功能 js 点击按钮切换 7年车龄的丰田卡罗拉,现在买回家还能开几年? 七年五万公里的马自达3算老车吗 如何用javascript实现页内的内容切换和翻页? 开了大约7年的车(别克),安全吗? 如何用js做简单的页面切换过渡效果 开7年的车折旧多少 js控制文本域实现是否编辑功能切换 js怎么实现按钮之间的切换,所显示的不同内容。 要给一辆7年的车续车险,请各位帮忙看看哪些需要和不需要 js 点击切换功能 07年的林荫大道算老车吗 超过了7年时间的二手车,还能去购买吗? js怎么实现单选和多选功能切换,点击单选是单选题,点击多选是多选题... 汽车开了10年算老吗? 汽车开了10年算老吗 车几年算老车 车龄超过六七年的车,能买吗? 七年二手车算不算老 js实现点击一个按钮不同属性切换 怎么用js实现图自动切换(每隔5秒钟自动切换一张图片)的效果 javascript 切换菜单 切换li的方法 会的进来 跪求高手。 javaScript切换效果 现在沈阳贷款买房合适吗?首套住房贷款利率是多少?有什么政策优惠吗? 如何用登录微信? 地铁卡和公交车卡是同一张卡吗? 地铁卡和公交卡是一个卡吗? 我是用微信登录的,我把微信密码输入上去,不管用,该怎么办 如何用登录微信 在微信中要发给别人的图片没有发送成功,显示正在发送中,怎样撤回? 女人梦见袋子里包裹着一叠叠的碗? 公交卡、地铁卡放一起会消磁吗? 求助求助,微信图片发到一半 能取消么 在北京怎么办理公交卡与地铁卡呢。 求科技征文600字以上 一般在哪里办理公交卡和地铁卡??? 微信上图片发了一半,点击选择删除发送,对方是不是看不到了就 我是用微信登录的爱奇艺,但是在电脑上没有微信登录,怎么办? 我微信发送的图片超过2分钟了,怎么删除啊- 问一问