JavaScript编程技术实验报告8

一、实验目的

了解JavaScript事件处理的基本概念

理解JavaScript事件处理模型

掌握JavaScript常用事件及处理

二、预习内容及要求(要求写出预习内容)

1. 事件流模型

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>预习内容及要求</title>
    <style type="text/css">
        div{
            display: flex;
            justify-content: center;
            align-items: center;
        }
    </style>
</head>
<body>
    <!--JS事件流模型-->
    <div id="i1" style="height: 150px;width: 150px;background: rgb(113, 139, 63);" onclick="alert('第一层绿色')">
        <div id="i2" style="height: 100px;width: 100px;background: rgb(125, 25, 207);" onclick="alert('第二层紫色')">
            <div id="i3" style="height: 50px;width: 50px;background: rgb(247, 0, 255);" onclick="alert('第三层皮粉色')"></div>
        </div>
    </div>
    <script>
        function myfunc(){
         var inp=document.getElementById("myinp");
         alert(inp.value);
        }
    </script>
    <input id="myinp" type="text" name="username" value="enter username"/>
    <input type="button" value="用户名" onclick="myfunc()"/>
    <script>
        function MOver(){
            var myimg=document.getElementById("myimg");
            myimg.src="2.gif";
        }
        function MOut(){
          var myimg=document.getElementById("myimg");
          myimg.src="1.jpg";
        }
    </script>
  <!--<img id="myimg" src="1.jpg" alt="mouse" onmouseover="MOver()"
  onmouseout="MOut()"/>-->
  <input id="btn1" type="button" value="click"/>
<!--事件对象-->
<script>
    var count=0;
    var btn1=document.getElementById("btn1");
    btn1.onclick=function(event){
        alert("事件类型:"+event.type+"你点击了"+(++count)+"下");
         
    }
</script>
<!-- 事件类型
焦点事件
鼠标和滚轮事件
键盘和文本事件
-->
<br />
<!--焦点事件-->
<script>
            window.onload = function(){undefined
                var test1 = document.getElementById('text1');
                test1.onfocus = function(){
                    if(this.value == '请输入内容'){undefined
                        this.value = '';
                    }
                }
                test1.onblur = function(){
                    if(this.value == ''){undefined
                        this.value = '请输入内容';
                    }
                }
            }
</script>
<input type="text" id="text1" value="请输入内容" />
<!--鼠标和滚轮事件-->
<br/>
<label for="wheelDelta">滚动值:</label><input type="text" id="wheelDelta"/>
<script type="text/javascript"> 
var a;
var fun1=function(a){ 
  a=a || window.event; 
 var t=document.getElementById("wheelDelta"); 
if(a.wheelDelta){
 t.value=a.wheelDelta; 
 }
} 
if(document.addEventListener){ 
 document.addEventListener('DOMMouseScroll',fun1,false); 
}
window.onmousewheel=document.onmousewheel=fun1;

</script>
<!--键盘和文本事件-->
<br/>
键盘和文本事件:
<input type="text" name="input" id="myinput" value="1">
<script>
document.getElementById('myinput').addEventListener('keydown',function(e){
    document.write("e.type:"+e.type+"    e.target.value:"+e.target.value+"   e.keyCode:"+e.keyCode);
})
</script>
</body>
</html>

 

 2. 事件处理程序

 

 

 

 3. 事件对象:

 

4. 事件类型

焦点事件

 

 

 鼠标和滚轮事件

 键盘和文本事件:

 

三、实验内容、操作过程及实验结果记录     

1. 对于页面上的一幅图片,鼠标悬停在图片上时切换成另一幅图,鼠标离开时,还原成原来的图片

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第一题</title>
</head>
<body>
    <!--1. 对于页面上的一幅图片,鼠标悬停在图片上时切换成另一幅图,鼠标离开时,还原成原来的图片-->
    <script>
        function MOver(){
            var myimg=document.getElementById("myimg");
            myimg.src="2.gif";
        }
        function MOut(){
          var myimg=document.getElementById("myimg");
          myimg.src="1.jpg";
        }
    </script>
  <img id="myimg" src="1.jpg" alt="mouse" onmouseover="MOver()"
  onmouseout="MOut()"/>
  <input id="btn1" type="button" value="click"/>
</body>
</html>

鼠标离开页面时显示这张图片:

鼠标停留在图画的切换成下图这张图片:

 

 2. 实现在页面上的一幅图片,能够跟随鼠标移动。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第二题</title>
    <style>
        img {
            /* 因为图片不能影响页面其他的布局,所以用绝对定位 */
            position: absolute;
        }
    </style>
</head>
<body>
    <!--2. 实现在页面上的一幅图片,能够跟随鼠标移动。-->
    <img src="3.gif" alt="人物">
    <script>
        var tu1 = document.querySelector('img');
        document.addEventListener('mousemove', function(a) {
            // 获取当前鼠标到页面的距离
            var x = a.pageX;
            var y = a.pageY;
            // 选用图片大小为50*50像素
            tu1.style.left = x - 25 + 'px';
            tu1.style.top = y - 25 + 'px';
        });
    </script>
</body>
</html>

 

 

 3. 实现在页面上的一幅图片,可以通过上下左右键控制图片在页面上移动。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第三题</title>
    <style>
        img{
            cursor: pointer;
            position: absolute;
            left: 0px;
            top: 0px;
        }
    </style>
</head>
<body>
    <!--实现在页面上的一幅图片,可以通过上下左右键控制图片在页面上移动。-->
    <img src="3.gif" id="img1" >
    <script>
        img1=document.getElementById('img1');
        x1=0;//起始位置为0
        x2=10;//增加量为10
        y1=0;
        y2=10;
        document.onkeydown=function(event){
            k=event.keyCode;
            switch(k){
                case 37://左移
                x1-=x2;
                img1.style.left=x1+'px';
                break;
                case 38://上移
                y1-=y2;
                img1.style.top=y1+'px';
                break;
                case 39://右移
                x1+=x2;
                img1.style.left=x1+'px';
                break;
                case 40://下移
                y1+=y2;
                img1.style.top=y1+'px';
                break;
            }
        }
    </script>
</body>
</html>

 

 

 

 

 4.在页面上建立一个自定义菜单,菜单内容如图所示,当单击菜单选项时,可以改变页面上文字相应设置。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第四题</title>
</head>
<body>
    <!--在页面上建立一个自定义菜单,菜单内容如图所示,当单击菜单选项时,可以改变页面上文字相应设置。-->
    <h3 id="text1">大家好,这里是计算机工程学院!</h3><br/>
    <button id="but1" onclick="but1()">绿色楷体</button>
    <button id="but2" onclick="but2()">红色幼圆</button>
    <button id="but3" onclick="but3()">粉色楷书</button>
    <script>
    function but1(){
    var text1=document.getElementById("text1");
    text1.style.color="green";
    text1.style.fontStyle="KaiTi_GB2312";
    }
    function but2(){
    var text1=document.getElementById("text1");
    text1.style.color="red";
    text1.style.fontStyle="YouYuan";
   }
   function but3(){
    var text1=document.getElementById("text1");
    text1.style.color="pink";
    text1.style.fontStyle="STKaiti";
   }
    </script>
</body>
</html>

 

 

 

 

 5.在页面上有两个div块,实现内部div块可以在其外部容器div块中随意拖动,并实现磁吸效果。

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第五题</title>
    <style>
        #test {
            width: 100px;
            height: 100px;
            background: #000;
            position: absolute;
            color: #fff;
        }
    </style>
</head>
<body>
    <div id="div1" style="background-color: aqua;width: 100px;height: 100px;position: absolute;left: 50px;top: 50px">
        <div id="div2" style="height: 40px;width:100%;background-color: antiquewhite;position: absolute;left: 0px;top: 0px"></div>
      </div>
      <script>
 var div1 = document.getElementById("div1");
        document.addEventListener('mousemove', function(a) {
            // 获取当前鼠标到页面的距离
            var x = a.pageX;
            var y = a.pageY;
            // 选用图片大小为50*50像素
            div1.style.left = x - 25 + 'px';
            div1.style.top = y - 25 + 'px';
        });
        var div2 = document.getElementById("div2");
        document.addEventListener('mousemove', function(a) {
            // 获取当前鼠标到页面的距离
            var x = a.pageX;
            var y = a.pageY;
            // 选用图片大小为50*50像素
            div2.style.left = x - 25 + 'px';
            div2.style.top = y - 25 + 'px';
        });
       
      </script>
</body>
</html>

 

 6.页面上有一张图片和一个自定义滚动条,实现如下效果:拖动滚动条,可以改变图片大小。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第六题</title>
    <style type="text/css">
        #all{
        width: 500px;
        height: 50px;
        background-color: rgb(241, 237, 234);
        border-radius: 25px;
        margin: 0 auto;
        position: relative;
        }
        #div1{
        width: 50px;
        height: 50px;
        border-radius: 50%;
        background-color: rgb(236, 216, 185);
        position: absolute;
        } 
        #box{
        background-color: rgb(127, 170, 114);
        position: absolute;
        top: 200px;
        left: 200px;
        }
        </style>
</head>
<body>
    <!--页面上有一张图片和一个自定义滚动条,实现如下效果:拖动滚动条,可以改变图片大小。-->
    <div id="all">
        <div id="div1"></div>
        </div>
        <div id="box"></div>
        <script type="text/javascript">
        var oAll = document.getElementById("all");
        var oDiv1 = document.getElementById("div1");
        var oBox = document.getElementById("box");
        var maxL = oAll.clientWidth - oDiv1.offsetWidth;
        oDiv1.onmousedown = function(){
        var ev = ev || window.event;
        var lessX = ev.clientX - oDiv1.offsetLeft; 
         
        document.onmousemove = function(){
        var ev = ev || window.event;
        var posL = ev.clientX - lessX;
        if(posL<0){
        posL = 0;
        }
        if(posL>maxL){
        posL = maxL;
        }
        oDiv1.style.left = posL + "px";
        //滚动条移动的百分比
        var per = posL/maxL;
        //定义宽0~300
        oBox.style.width = 300*per+"px";
        oBox.style.height = 300*per+"px";
        oBox.style.marginTop = -oBox.offsetHeight/2+"px";
        oBox.style.marginLeft = -oBox.offsetWidth/2+"px";
        }
        }
         
        document.onmouseup =function(){
        document.onmousemove = null;
         
        }
         
        </script>
</body>
</html>

 

JavaScript实验报告全文共5页,当前为第1页。JavaScript实验报告全文共5页,当前为第1页。第一次JavaScript实验 JavaScript实验报告全文共5页,当前为第1页。 JavaScript实验报告全文共5页,当前为第1页。 实验主题:内置对象(1) 实验内容: 1. 熟悉JavaScript常见内置对象及其关系; 2. 熟练应用String对象和Array对象; 3. 动手操作: 数组的升序与降序排列练习 1 升序排列代码 <html> <head> <title>数组数字大小排序</title> </head> <body> <p>让数组按照升序降序排列</p> <p>这里写个数组 var array=[89,28,49,654,6758,5768];</p> <p>升序输出:</p> <script type="text/javascript"> var array=[89,28,49,654,6758,5768]; array.sort(function (x,y) { return x-y; }); document.writeln(array); </script> </body> </html> JavaScript实验报告全文共5页,当前为第2页。JavaScript实验报告全文共5页,当前为第2页。 JavaScript实验报告全文共5页,当前为第2页。 JavaScript实验报告全文共5页,当前为第2页。 2降序排列 <html> <head> <title>数组数字大小排序</title> </head> <body> <p>降序排列:</p> <p>这里写个数组 var array=[59,689,62,92,68,10];</p> <p>降序输出</p> <script type="text/javascript"> var array=[59,689,62,92,68,10]; array.sort(function (x,y) { return y-x; }); document.writeln(array); </script> </body> </html> JavaScript实验报告全文共5页,当前为第3页。JavaScript实验报告全文共5页,当前为第3页。 字符串的交叉合并练习 JavaScript实验报告全文共5页,当前为第3页。 JavaScript实验报告全文共5页,当前为第3页。 <html> <head> <title>交叉合并字符串</title> <style> #form{ margin: 0 auto; width:500px; top:100px; height:300px; } </style> <script type="text/javascript"> var reg = "^[A-Za-z0-9]+$"; function check(){ var str1 =document.all.str1.value; var str2 =document.all.str2.value; if(str1==""){ alert("字符串一不允许为空!"); document.all.str1.focus(); return; }else if(!/^[A-Za-z0-9]+$/.test(str1)){ alert("字符串一只能是数字和字母的组合"); document.all.str1.focus(); return; }else if(str2==""){ alert("字符串二不允许为空!"); document.all.str2.focus(); return; }else if(!/^[A-Za-z0-9]+$/.test(str2)){ alert("字符串二只能是数字和字母的组合"); document.all.str2.focus(); return; } var string=""; var font1 = "<font style='color:red;'>"; var font2 = "<font style='color:blue;'>"; var fontend = "</font>"; if(str1.length>=str2.length){ for(var i =0;i<str1.length;i++){ if(i< str2.length){ string += font1+str1[i]+fontend+ font2+ str2[i]+fontend; JavaScript实验报告全文共5页,当前为第4页。JavaScript实验报告全文共5页,当前为第4页。 }else{ JavaScript实验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Su魏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值