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

怎样用js实现每次点击按钮都使div向右移动50px

发布网友 发布时间:2022-04-07 05:41

我来回答

5个回答

懂视网 时间:2022-04-07 10:02

描述:

div通过键盘事件上下左右实现div块的移动

效果:

9ad88c8ff0ad0ea71b1d04528c315d2.png

(视频教程推荐:js视频教程)

js代码:

var Method=(function () {
 return {
 EVENT_ID:"event_id",
 loadImage:function (arr) {
 var img=new Image();
 img.arr=arr;
 img.list=[];
 img.num=0;
// 如果DOM对象下的事件侦听没有被删除掉,将会常驻堆中
// 一旦触发了这个事件需要的条件,就会继续执行事件函数
 img.addEventListener("load",this.loadHandler);
 img.self=this;
 img.src=arr[img.num];
 },
 loadHandler:function (e) {
 this.list.push(this.cloneNode(false));
 this.num++;
 if(this.num>this.arr.length-1){
 this.removeEventListener("load",this.self.loadHandler);
 var evt=new Event(Method.EVENT_ID);
 evt.list=this.list;
 document.dispatchEvent(evt);
 return;
 }
 this.src=this.arr[this.num];
 },
 $c:function (type,parent,style) {
 var elem=document.createElement(type);
 if(parent) parent.appendChild(elem);
 for(var key in style){
 elem.style[key]=style[key];
 }
 return elem;
 },
 divColor: function () {
 var col="#";//这个字符串第一位为# 颜色的格式
 for(var i=0;i<6;i++){
 col+=parseInt(Math.random()*16).toString(16);//rondom*16后的随机值即为0-1*16==0-16; toString(16)为转化为16进制
 }
 return col;//最后返回一个七位的值 格式即为#nnnnnn 颜色的格式
 },
 random:function (min,max) {
 max=Math.max(min,max);
 min=Math.min(min,max);
 return Math.floor(Math.random()*(max-min)+min);
 },
 dragElem:function (elem) {
 elem.addEventListener("mousedown",this.mouseDragHandler);
 elem.self=this;
 },
 removeDrag:function (elem) {
 elem.removeEventListener("mousedown",this.mouseDragHandler);
 },
 mouseDragHandler:function (e) {
 if(e.type==="mousedown"){
 e.stopPropagation();
 e.preventDefault();
 document.point={x:e.offsetX,y:e.offsetY};
 document.elem=this;
 this.addEventListener("mouseup",this.self.mouseDragHandler);
 document.addEventListener("mousemove",this.self.mouseDragHandler);
 }else if(e.type==="mousemove"){
 this.elem.style.left=e.x-this.point.x+"px";
 this.elem.style.top=e.y-this.point.y+"px";
 }else if(e.type==="mouseup"){
 this.removeEventListener("mouseup",this.self.mouseDragHandler);
 document.removeEventListener("mousemove",this.self.mouseDragHandler);
 }
 }
 }
})();

html代码:

<!DOCTYPE html>
<html>
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="js/Method.js"></script>
</head>
<body>
<script>
 var div;
 var code=[];
 var speed=2;
 var bool=false;
 init();
 function init() {
 div=Method.$c("div",document.body,{
 width:"50px",
 height:"50px",
 backgroundColor:"red",
 position:"absolute",
 left:0,
 top:0
 });
 window.addEventListener("keydown",keyHandler);
 window.addEventListener("keyup",keyHandler);
 setInterval(animation,16);
 }
 
 function keyHandler(e) {
 if(e.type==="keydown" && (!bool || code.indexOf(e.keyCode)===-1)){
 bool=true;
 code.push(e.keyCode);
 }else if(e.type==="keyup"){
 bool=false;
 code.length=0;
 }
 }
 
 function animation() {
 if(!bool)return;
 for(var i=0;i<code.length;i++){
 switch (code[i]){
 case 37:
  div.style.left=div.offsetLeft-speed+"px";
  break;
 case 38:
  div.style.top=div.offsetTop-speed+"px";
  break;
 case 39:
  div.style.left=div.offsetLeft+speed+"px";
  break;
 case 40:
  div.style.top=div.offsetTop+speed+"px";
  break;
 }
 }
 }
</script>
</body>
</html>

推荐教程:js入门教程

热心网友 时间:2022-04-07 07:10

HTML部分
//要移动的div(操作的对象)

<div class="test" style="background:#f00;width:100px;height:100px;"></div>
//按钮来触发事件
<input type="button" value="移动" id="move"/>
原生js实现
var btn_click=document.getElementById("move"); //获取点击按钮
var box=document.querySelector(".test");//获取要移动的div
var a=0;
btn_click.onclick=function(){
a=a+50;
box.style.left=a+'px'; //每点击一次,向右移动50px
}

热心网友 时间:2022-04-07 08:28

var div = document.getElementById('divid');    //divid为目标的id
document.onclick = function(){
    var oleft = div.getBoundingClientRect().left;
    div.style.position = 'absolute';
    div.style.left = oleft + 50 + 'px';
}

热心网友 时间:2022-04-07 10:03

<div id="test" style="width:100px;height:60px;background-color:gray;position:absolute"></div>
<script type="text/javascript">
var myLeft;
var mover = 50;
var test = document.getElementById("test");
test.onclick = function(){
myLeft = parseInt(this.style.left);

if(isNaN(myLeft)){
myLeft = 0;
}

this.style.left = myLeft + mover + "px";

}
</script>

热心网友 时间:2022-04-07 11:54

动态设置div的样式 距离右边的距离
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 华为荣耀v9怎样闪照 我的华为手机拍的照片,为什么在查看时照片有的部份都要闪动一下? 华为荣耀3c照相机闪光灯怎么设置 荣耀10怎么开启拍照闪光灯? 怎么删除苹果6相册里同步的视频 怎么删除导入苹果手机里的照片和视频啊 怎么删除苹果6相册里同步的视频? 我的iphone6如何从设备中删除同步的照片和视频? itunes里未同步的影片怎么删除 《闪电侠》将登场另类超人,5个蝙蝠侠同框,这部电影是要飘了吗? 怎样删除未备份照片视频 想找一部美剧看看,神盾局特工,绿箭侠,闪电侠,这三部哪部最好看? 《闪电侠第四季》与前几季相比哪个更好看 闪电侠太好看了 盘点5部好看的科幻美剧:神盾局上榜,你最喜欢哪部 《闪电侠》和《绿箭侠》好看吗? 你心中最好看的美剧是哪部?为什么? 进口常温牛奶哪个牌子好? 如何回答面试官(java开发)的提问? 国外常温牛奶品牌的排名是怎样的? 业务员每天打卡定位管理利弊 手机定位原理是什么,用于管理外勤业务员哪种定位比较实用? 如何管理业务员,对业务员考勤? 公司为了更好的管理业务员上了一套业务员定位系统,但员工很排斥,工作积极性明显下降了,该怎么办? 快消公司用业务员定位干嘛?谁能回答我? 舟谱快消对业务员定位吗 如何管理业务员? 公司怎么管理在外跑的业务员? 手机定位来管理我的业务员能行吗? 快消公司用业务员定位干嘛?怎么办呢? 电信天翼机顶盒怎么设置无线路由器? 空调的粗管和细管是什么作用 空调的粗管和细管是什么作用? 空调粗管和细管是干什么的? 空调的粗管和细管的区别 冷暖两用空调,铜管为什么有粗细 海尔空调连接主力机上粗细铜管的工用是什么? 空调铜管粗换细有影响吗 家用空调换热器中不同规格的铜管作用有何区别? 用JS控制div层的显隐和移动