用产生随机数的方法加上鼠标事件实现点击生成彩色积木

这个小例子我是用纯Js实现的,这个例子主要用到了random()产生随机数的方法和onmouse等鼠标事件以及获取元素和视口坐标来实现了可以在网页上拖拽的积木效果,可以帮学习javascript的同学一些小小的启发,话不多说,先给大家看效果图:

这个html代码就很简单了,我们写一个按钮来实现点击事件即可:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body id="bg">
<input type="button" value="生成积木" id="drag"/>
</body>
</html>

然后我们来分析一个随机生成网页积木所需的步奏,首先我们要为页面上的这个按钮设置点击事件来让它可以生成随机的小方块:

 <script>
         document.getElementById("drag").onclick =function (){
         var ids = getRandom();
         var num1 = getRandom();
         var num2 = getRandom();
         var num3 = getRandom();
         var divs = "<div id=‘"+ids+"‘ style=‘position: absolute;width: 100px;height: 100px;background: rgb("+num1+","+num2+","+num3+");float: left‘></div>"     //生成随机颜色的div
         document.getElementById("bg").insertAdjacentHTML("beforeEnd",divs);
         drag(ids);      //调用下面的拖拽函数方法
    }
    function  getRandom(){
        return parseInt(Math.random() * 255);
    }
</script>

点击事件就已经加上了,然后我们实现可以随意拖拽的积木效果,在这里使用了多个鼠标事件和获取页面以及元素坐标来实现,我在这里是封装了一个函数方法,代码如下:

    function drag(id){
        var obj = document.getElementById(id);
        var disX = 0;
        var disY = 0;
        obj.onmousedown = function (event){
            disX = event.clientX - obj.offsetLeft;    //offsetLeft元素相对于父元素的左边距
            disY = event.clientY - obj.offsetTop;
            document.onmousemove = function (event){
                obj.style.left = event.pageX - disX +‘px‘;
                obj.style.top = event.pageY - disY +‘px‘;
            }
            document.onmouseup = function (){
                document.onmousemove = null;
                document.onmouseup = null;
            }
        }
  return false;
    }

好了,一个简单的彩色积木例子就实现了,如果想了解更多关于获取浏览器视口和显示器宽度以及高度的方法请看我的博客,谢谢大家,吃好喝好回见。

时间: 2024-08-29 09:01:44

用产生随机数的方法加上鼠标事件实现点击生成彩色积木的相关文章

JavaScript鼠标事件,点击鼠标右键,弹出div

document.oncontextmenu = function(){return false}; //禁止鼠标右键菜单显示 var res = document.getElementById('box'); //找到id为box的div document.body.onmouseup = function(e){ //在body里点击触发事件 if(e.button===2){ //如果button=1(鼠标左键),button=2(鼠标右键),button=0(鼠标中间键) console

jquery 鼠标事件汇总

鼠标事件是指用户在移动鼠标光标或者点击任意鼠标键时触发的事件,jQuery中封装了基本上所有的鼠标事件包括点击,双击,移动等鼠标事件,下面我们就来看下这些事件的语法和用法 鼠标事件是在用户移动鼠标光标或者使用任意鼠标键点击时触发的. 1.click事件:点击鼠标左键时触发 $('p').click(function(){}); 示例: $('p').click(function(){ alert('click function is running !'); }); 2.dbclick事件:迅速

jQuery事件 mouseover方法与mouseout方法实现鼠标移进显示移出消失的效果 (css控制span标签)

<script> $(function(){ var text ; $(".pos span").each(function(){ text = $(this).text().trim(); if(text=="设为默认"){ $(this).css('display','none'); } }); $(".pos").mouseover(function(){ //鼠标移进显示效果 text = $(this).find('span

vue el-form鼠标事件导致页面刷新解决方案;vue 阻止多次点击提交数据通用方法

一.阻止表单自动提交刷新页面:<el-form> <el-form-item :inline="true" @submit.native.prevent> <el-input @keyup.enter.native='submit'></el-input> </el-form-item> </el-form> 注意: 鼠标事件导致页面刷新问题,在el-form上增加 @submit.native.prevent 可

鼠标事件监听器的创建和使用

鼠标操作是图形操作系统最常用操作,用户使用鼠标单击,双击,右击,拖动等操作实现与软件的交互. 鼠标事件监听器 鼠标事件监听器由MouseListener接口和MouseMotionListener接口定义,分别定义鼠标捕获不同的鼠标操作方法. MouseListener监听器方法说明 mouseClicked(MouseEvent e) 处理鼠标单击事件方法 mouseEntered(MouseEvent e) 鼠标进入组件区域时执行方法 mouseExited(MouseEvent e) 鼠标

浅谈Qt事件的路由机制:鼠标事件

请注意,本文是探讨文章而不是教程,是根据实验和分析得出的结果,可能是错的,因此欢迎别人来探讨和纠正. 这几天对于Qt的事件较为好奇,平时并不怎么常用,一般都是用信号,对于事件的处理,一般都是需要响应键盘按键事件的时候,也用得毫无问题,因此也没怎么注意过,翻了下一般qt的教材<精通Qt4编程(第二版)>,里面12.1是这么说的. 当用户按下一个鼠标键时,这个事件首先被发给当前拥有焦点的窗口部件. 看到这里,我第一反应是,真的是这样吗,我表示十分地好奇,于是就赶忙试验了一下.代码比较简单,没有注释

(转)C#模拟键盘鼠标事件

原文 1.模拟键盘事件System.Windows.Forms.SendKeys以下是   SendKeys   的一些特殊键代码表.     键   代码       BACKSPACE   {BACKSPACE}.{BS}   或   {BKSP}       BREAK   {BREAK}       CAPS   LOCK   {CAPSLOCK}       DEL   或   DELETE   {DELETE}   或   {DEL}       DOWN   ARROW(下箭头键)

【javascript/css】关于鼠标事件onmousexxx和css伪类hover

在运用鼠标移入移出事件时,一般有两种做法,一种是DOM事件的"onmouseover"和"onmouseout",还有一种是css的伪类":hover". 在实际运用中如何选择,取决于清楚明白的了解他们之间的区别. HTML DOM 允许 JavaScript 对 HTML 事件作出反应. 在我们为元素绑定了一个事件,当事件发生的时候,可以执行一段javascript代码. 关于鼠标事件,总共有: onmouseover和onmouseout 鼠

winform/窗体鼠标事件编程中的几个问题

1.进行.net窗体的开发,经常用到鼠标事件,如MouseDown/MouseUp/MouseMove/MouseClick等.可是有时候给控件添加鼠标事件,就是不响应,怎么办呢! 答案:1.控件是否可见,即不能被子控件遮挡,若已经被遮挡,可以在子控件中将鼠标事件调用父控件的OnMouseMove等方法对父控件的鼠标事件进行重写 2.尝试在MouseEnter事件中将控件设置为输入焦点(Focus试试) 2.MouseDown.MouseMove.MouseUp三个事件是如何响应的? 答案:经测