javascript 作品

JavaScript获取浏览器高度和宽度值

document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度

在这里插入图片描述

JS的位置

    //clientHeight表示的是可视区域的高度,不包含border和滚动条(css height + css padding)
    console.log('clientHeight:'+document.getElementById('div').clientHeight);
    //Element.scrollHeight 这个只读属性是一个元素内容高度的度量,包括由于溢出导致的视图中不可见内容
    console.log('scrollHeight:'+document.getElementById('div').scrollHeight);
    //HTMLElement.offsetHeight 是一个只读属性,它返回该元素的像素高度,高度包含该元素的垂直内边距和边框,且是一个整数
    console.log('offsetHeight:'+document.getElementById('div').offsetHeight);


    //clientTop一个元素顶部边框的宽度(以像素表示)。不包括顶部外边距或内边距。clientTop 是只读的 
    console.log('clientTop:'+document.getElementById('div').clientTop);
    //Element.scrollTop 属性可以获取或设置一个元素的内容垂直滚动的像素数。
    console.log('scrollTop:'+document.documentElement.scrollTop);
    //HTMLElement.offsetTop 为只读属性,它返回当前元素相对于其 offsetParent 元素的顶部的距离
    console.log('offsetTop:'+document.getElementById('div').offsetTop);

BOM

定时器应用
轮播图(纯js)
Div块 移动(键盘控制)

Div块 移动 代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
<style type="text/css">
#box1{
  width: 100px;
  height: 100px;
  background-color: red;
  position: absolute;
} 
</style>
</head>
<body>
  <div id="box1"></div>
</body>
<script type="text/javascript">
var speed=20;
//通过修改dir影响方向
var dir=0;
setInterval(function(){
        switch (dir){
            case 37://"向左"
            box1.style.left=box1.offsetLeft-speed+"px";
              break;
            case 38://"向上"
             box1.style.top=box1.offsetTop-speed+"px";
              break;
                      case 39://"向右"
             box1.style.left=box1.offsetLeft+speed+"px";
              break;
                      case 40://"向下"
             box1.style.top=box1.offsetTop+speed+"px";
              break;
            }
},30);
   document.onkeydown=function(event){
    event=event||window.event;    https://saton.top/javascript/js基础/练习/BOM练习/
  if(event.ctrlKey)//按ctrl改变速度
    {speed=50;}else{speed=20}
    dir=event.keyCode;
  }
  document.onkeyup=function(){
   dir=0;
  }
</script>
</html>

DOM

div跟随鼠标
滚轮练习
键盘练习
全选练习
事件绑定
事件冒泡
事件委派
拖拽

拖拽练习 代码:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
<style type="text/css">
  #box1{
    width: 200px;
    height:200px;
    background-color: #bfa;
    position: absolute;
  }
    #box2{
    width: 200px;
    height:200px;
    background-color: yellow;
    position: absolute;
    left: 500px;
    top:50px;
  }
</style>
</head>
<body >
	<div align="center">
    6666
  <div id="box1"></div>
  <div id="box2"></div>
   <img src="./img/1.jpg" id="img1" style="position: absolute;"/>
</div>

 
 
</body>
<script type="text/javascript">
 var box1=document.getElementById("box1");
 var box2=document.getElementById("box2");
 var img1=document.getElementById("img1");

 drag(box1);
 drag(box2);
 drag(img1);
 function  drag(obj){
   obj.onmousedown=function(event){
  //设置box捕获所以鼠标按下的事件
  obj.setCapture&&obj.setCapture();
 event=event||window.event;
  //div的偏移量 .clientx-元素.offsetLeft
  //div的偏移量 .clienty-元素.offsetTop 鼠标在哪点,就固定在div哪里
  var ol=event.clientX-obj.offsetLeft;
  var ot=event.clientY-obj.offsetTop;
  
  document.onmousemove=function(event){

  event=event||window.event;//解决事件对象兼容性
  var left=event.clientX-ol;
  var top=event.clientY-ot;
  obj.style.left=left+"px";
  obj.style.top=top+"px";
 }
  obj.onmouseup=function(){
  //当鼠标松开时,被拖拽元素固定在当前位置
  //取消document的onmousemove事件
  document.onmousemove=null;
  //取消document的onmouseup事件
  document.onmouseup=null;
  obj.releaseCapture&&obj.releaseCapture();
 }
 //当拖拽一个网页内容时,浏览器会默认搜索引擎中的搜索内容
 //可以通过return false来阻止
 return false;
 }
 }
</script>
</html>
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的 JavaScript 作品,它包括了 DOM 操作、BOM 操作和 jQuery 库的使用。这个作品是一个简单的网页倒计时器,可以设定一个时间,然后倒计时到这个时间并在网页上展示倒计时的进度。 ```html <!DOCTYPE html> <html> <head> <title>网页倒计时器</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <h1>网页倒计时器</h1> <p>设定一个时间,倒计时到这个时间:</p> <input type="datetime-local" id="countdown-time"> <button onclick="startCountdown()">开始倒计时</button> <div id="countdown"></div> <script> var intervalId; function startCountdown() { var countdownTime = new Date($("#countdown-time").val()).getTime(); if (isNaN(countdownTime)) { alert("请设置一个有效的时间!"); return; } intervalId = setInterval(function() { var now = new Date().getTime(); var distance = countdownTime - now; if (distance < 0) { clearInterval(intervalId); $("#countdown").text("时间到!"); } else { var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); $("#countdown").text("距离设定时间还有:" + days + " 天 " + hours + " 小时 " + minutes + " 分钟 " + seconds + " 秒"); } }, 1000); } </script> </body> </html> ``` 这份代码中包含一个输入框和一个按钮,用户可以在输入框中设定一个时间,点击按钮后就会触发 `startCountdown()` 函数开始倒计时。在这个函数中,我们首先使用 jQuery 库的 `$()` 函数获取输入框的值,并使用 `new Date()` 函数将其转换为一个 JavaScript Date 对象。如果用户没有设置有效的时间,我们则使用 `alert()` 函数弹出警告框。 然后我们使用 `setInterval()` 函数开启一个定时器,每秒钟执行一次函数。在这个函数中,我们首先获取当前时间,计算还有多少时间需要倒计时。如果距离设定时间已经过了,我们停止定时器并在网页上展示倒计时结束的信息;否则,我们计算还有多少天、小时、分钟和秒钟需要倒计时,并将其展示在网页上。 在这个过程中,我们使用了 BOM 的 `setInterval()` 函数实现定时器和 DOM 操作来展示倒计时的进度。同时,我们也使用了 jQuery 库的 `$()` 函数简化了获取输入框的值和展示倒计时的进度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值