• JS | “鼠标跟随”案例以及“留言板”案例


    目录

    案例一:图片跟着鼠标移动

    案例二:留言板


    案例一:图片跟着鼠标移动

    分析:

    1. 鼠标不断的移动,使用鼠标移动事件:mousemove
    2. 在页面中移动,给document注册事件
    3. 图片要移动距离,且不占位置,我们使用绝对定位即可
    4. 核心原理:每次鼠标移动,我们都会获得最新的鼠标坐标,把这个x和y坐标作为图片的top和left值就可以移动图片。【在改变top和left值时,记得在x和y后面加单位 ‘px’】

    CSS: 

    HTML+JS:

    1. "./img/CUTE.jpg" width="100px">
    2. <script>
    3. document.addEventListener('mousemove',function(e){
    4. var img =document.querySelector('img')
    5. var x = e.pageX;
    6. var y = e.pageY;
    7. img.style.left = x + 'px';
    8. img.style.top = y + 'px';
    9. })
    10. script>

    效果图:

    在这里有一点需要注意的点,如果我们的图片还可以给它固定定位

    但如果我们使用固定定位,横纵坐标还用e.pageX和e.pageY的话,会受到滚轮的影响;而clientX、clientY不会受滚轮的影响 ,所以我们在使用固定定位时,横纵坐标记得要使用clientX、clientY。

    案例二:留言板

    分析:

    1. 当我们没有在输入框中输入内容时,点击提交按钮会有弹窗
    2. 创建节点,给新节点添加内容(包括“删除”超链接),把新节点添加到父节点上,清空输入框的内容
    3. 先判断留言区有没有可以删除的留言,如果没有,弹窗提示
    4. 删除想要去除的那一条留言

    CSS: 

    HTML+JS: 

    1. <div class="box">
    2. <textarea>textarea>
    3. <button>提交留言button>
    4. <h3>留言区:h3>
    5. <ul>ul>
    6. div>
    7. <script>
    8. var btn = document.querySelector('button')
    9. var ulNode = document.querySelector('ul')
    10. var msg = document.querySelector('textarea')
    11. btn.onclick = function () {
    12. if (msg.value == '') {
    13. alert('你当前没有输入任何内容')
    14. }else{
    15. //创建一个节点
    16. var li = document.createElement('li')
    17. //给节点添加内容
    18. li.innerHTML = msg.value+"删除"
    19. //添加节点
    20. ulNode.appendChild(li)
    21. //清除文本框的内容
    22. msg.value = ''
    23. }
    24. //删除节点
    25. if(ulNode.children.length == 0){
    26. alert('你当前没有添加内容')
    27. return false
    28. }else{
    29. ulNode.addEventListener('click',function(e){
    30. if(e.target.nodeName == 'A'){
    31. ulNode.removeChild(e.target.parentNode)
    32. }
    33. })
    34. }
    35. }
    36. script>

    效果:

  • 相关阅读:
    【打卡】【Linux的设备驱动管理之内核对象】21天学习挑战赛—RK3399平台开发入门到精通-Day15
    STC51单片机29——汇编语言 取表法 流水灯
    使用.NetCore自带的后台作业,出入队简单模拟生产者消费者处理请求响应的数据
    Android Studio compose的简单使用与案例实现
    微服务分布式开源的优点体现在哪?
    【Flowable】使用UEL整合Springboot从0到1(四)
    【大数据】Spark使用大全:下载安装、RDD操作、JAVA编程、SQL
    Git Gui的使用+关于SSH协议和克隆对应文件代码+IDEA集成Git等
    sqli-labs/Less-54
    Python中的Class
  • 原文地址:https://blog.csdn.net/m0_72383454/article/details/126539905