当前位置:   article > 正文

AJAX学习日记——Day 2

AJAX学习日记——Day 2

一、Bootstrap

1、功能:不离开当前页面,显示单独内容

2、导入:

  1. 1、导入bootstrap.css
  2. <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous">
  3. 2、导入bootstrap.js
  4. <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-/mhDoLbDldZc3qpsJHpLogda//BVZbgYuw6kof4u2FrCedxOtgRZDTHgHUhOCVim" crossorigin="anonymous"></script>

3、主体

  1. <!--
  2. 目标:使用Bootstrap弹框
  3. 1. 引入bootstrap.css 和 bootstrap.js
  4. 2. 准备弹框标签,确认结构
  5. 3. 通过自定义属性,控制弹框的显示和隐藏
  6. -->
  7. <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target=".my-box">
  8. 显示弹框
  9. </button>
  10. <!--
  11. 弹框标签
  12. bootstrap的modal弹框,添加modal类名(默认隐藏)
  13. -->
  14. <div class="modal my-box" tabindex="-1">
  15. <div class="modal-dialog">
  16. <!-- 弹框-内容 -->
  17. <div class="modal-content">
  18. <!-- 弹框-头部 -->
  19. <div class="modal-header">
  20. <h5 class="modal-title">Modal title</h5>
  21. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  22. </div>
  23. <!-- 弹框-身体 -->
  24. <div class="modal-body">
  25. <p>Modal body text goes here.</p>
  26. </div>
  27. <!-- 弹框-底部 -->
  28. <div class="modal-footer">
  29. <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
  30. <button type="button" class="btn btn-primary">Save changes</button>
  31. </div>
  32. </div>
  33. </div>
  34. </div>

4、通过自定义属性控制

  1. data-bs-toggle="modal" :点击按钮之后会切换显示或隐藏
  2. data-bs-target=".my-box":点击按钮后需要被控制的弹框的css
  3. data-bs-dismiss="modal":点击之后隐藏
  4. alert-success:成功颜色
  5. alert-danger: 失败颜色

5、通过JS代码控制

  1. const modalDOM = document.querySelector('.my-box')
  2. //获取DOM
  3. const modal = new bootstrap.Modal(modalDOM)
  4. //通过DOM获取modal对象
  5. document.querySelector('.edit-btn').addEventListener('click',() => {
  6. modal.show();
  7. //显示
  8. })
  9. document.querySelector('.btn-close-one').addEventListener('click',() =>{
  10. modal.hide();
  11. //隐藏
  12. })

二、图片上传

  1. 1、用FormData携带图片文件
  2. const fd = new FormData()
  3. fd.append(参数名,值)
  4. 如:
  5. const fd = new FormData()
  6. fd.append('img',e.target.files[0])
  7. 2、实例:
  8. document.querySelector('.upload').addEventListener('change',e =>{
  9. console.log(e.target.files[0])
  10. const fd = new FormData()
  11. fd.append('img',e.target.files[0])
  12. axios({
  13. url:'http://hmajax.itheima.net/api/uploadimg',
  14. method:'POST',
  15. data:fd,
  16. }).then(result => {
  17. console.log(result.data.data.url);
  18. document.querySelector('.my-img').src = result.data.data.url;
  19. })
  20. })

三、背景替换

  1. document.querySelector('.bg-ipt').addEventListener('change',e => {
  2. const fd = new FormData();
  3. console.log(e.target.files[0]);
  4. fd.append('img',e.target.files[0]);
  5. axios({
  6. url:'http://hmajax.itheima.net/api/uploadimg',
  7. method:'post',
  8. data:fd,
  9. }).then(result => {
  10. console.log(result.data.data.url);
  11. const MyImg = result.data.data.url
  12. document.body.style.backgroundImage = `url(${MyImg})`
  13. const bgUrl = localStorage.setItem('bgImg',MyImg)
  14. })
  15. })
  16. const bgUrl = localStorage.getItem('bgImg');
  17. bgUrl && (document.body.style.backgroundImage = `url(${bgUrl}`);

四、个人信息

  1. 1、默认值
  2. const creator = "guge";
  3. axios({
  4. url:"http://hmajax.itheima.net/api/settings",
  5. method:"get",
  6. params:{
  7. creator,
  8. }
  9. }).then(result => {
  10. console.log(result.data.data);
  11. const userObj = result.data.data
  12. Object.keys(userObj).forEach(key => {
  13. if(key === 'avatar'){
  14. document.querySelector('.prew').src = userObj[key]
  15. //通过键获取头像对象的值
  16. }
  17. else if(key === 'gender'){
  18. const gender = document.querySelectorAll('.gender');
  19. gender[userObj[key]].checked = true;
  20. //单选框的值是用checked控制
  21. }
  22. else{
  23. document.querySelector(`.${key}`).value = userObj[key];
  24. }
  25. console.log(key);
  26. })
  27. })
  28. 2、修改头像
  29. document.querySelector('.upload').addEventListener('change',e=>{
  30. // const MyImg = e.target.files[0];
  31. const fd = new FormData()
  32. fd.append('avatar',e.target.files[0])
  33. fd.append('creator',creator)
  34. axios({
  35. url:'http://hmajax.itheima.net/api/avatar',
  36. method:'put',
  37. data:fd,
  38. }).then(result => {
  39. console.log(result.data.data.avatar);
  40. document.querySelector('.prew').src = result.data.data.avatar;
  41. })
  42. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/249462
推荐阅读
相关标签
  

闽ICP备14008679号