• 5.git远程仓库的创建(http,ssh)


    目录

     大致步骤:

    hover的小知识点:

    offsetX: 鼠标坐标到元素的左侧的距离

    offsetWidth: 除了外边距(margin)以外,所有的宽度(高度)之和(当前元素)

    offsetHeight:元素的像素高度 包含元素的垂直内边距和边框,水平滚动条的高度,且是一个整数

    实现效果:

     完整HTML代码:

     完整VUE代码:


     大致步骤:

    首先我们应该先构思好布局:

    1. 先有一个div存放原始图片
    2. 再有一个div存放放大后的图片
    3. 来一个遮罩层让用户知道自己正在观察哪个区域,并且实现遮罩层跟随鼠标移动而移动
    4. 显示放大后的图片

    OK,大致就是这几个步骤。

    这里在说一下关于代码中的css布局最后三行,在这里我踩了很大一个坑,因为在页面结构中big类是event的邻居兄弟类,而mask类也是兄弟类但是不邻接。并且这两个类的display我最初设置的是none,就是最初没有结构不显示。在我写代码时我使用.event:hover .big,.mask{display:block}发现一直没有效果,并且我开始并没有发现是这里错了,导致纠结了很久。

    1. .event1:hover + .big ,
    2. .event1:hover ~ .mask {
    3. display: block;
    4. }

    hover的小知识点:

    hover后面一般都是控制子元素,无法控制父元素的效果
    hover更改同级(兄弟)元素属性:
    更改兄弟元素又分两种情况:

    • 需要更改的兄弟元素是当前元素的相邻元素,也就是说紧接着当前元素,在hover后面使用‘+’号链接就行,就是 .event1:hover + .big 
    • 需要改变的兄弟元素不是当前元素的邻接元素: .event1:hover ~ .mask

    offsetX: 鼠标坐标到元素的左侧的距离

    offsetWidth: 除了外边距(margin)以外,所有的宽度(高度)之和(当前元素)

    offsetHeight:元素的像素高度 包含元素的垂直内边距和边框,水平滚动条的高度,且是一个整数

           

     

     url图片地址改成自己的啊,不要和我一样!!!!!

    实现效果:

    图片本身就比较糊,不是放大的原因

     

     完整HTML代码:

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8" />
    5. <title>放大镜实现title>
    6. head>
    7. <body>
    8. <div class="spec-preview">
    9. <img src="./111jpg.jpg" />
    10. <div class="event1" id="event1" onmousemove="mouseMove(event)">div>
    11. <div class="big">
    12. <img src="./111jpg.jpg" id="bigImg"/>
    13. div>
    14. <div class="mask">div>
    15. div>
    16. body>
    17. <style>
    18. .spec-preview {
    19. position: relative;
    20. width: 400px;
    21. height: 400px;
    22. border: 1px solid #ccc;
    23. }
    24. .spec-preview>img {
    25. width: 100%;
    26. height: 100%;
    27. }
    28. .event1 {
    29. width: 100%;
    30. height: 100%;
    31. position: absolute;
    32. top: 0;
    33. left: 0;
    34. z-index: 998;
    35. }
    36. .mask {
    37. width: 50%;
    38. height: 50%;
    39. background-color: rgba(0, 255, 0, 0.3);
    40. position: absolute;
    41. left: 0;
    42. top: 0;
    43. display: none;
    44. }
    45. .big {
    46. width: 100%;
    47. height: 100%;
    48. position: absolute;
    49. top: -1px;
    50. left: 105%;
    51. border: 1px solid rgb(212, 11, 11);
    52. /* //把下面这行代码去掉,试着理解为什么上面需要乘以-2 */
    53. overflow: hidden;
    54. z-index: 998;
    55. display: none;
    56. background: white;
    57. }
    58. .big img {
    59. /* 这里的宽高实现放大两倍的效果 */
    60. width: 200%;
    61. max-width: 200%;
    62. height: 200%;
    63. position: absolute;
    64. left: 0;
    65. top: 0;
    66. }
    67. .event1:hover + .big ,
    68. .event1:hover ~ .mask {
    69. display: block;
    70. }
    71. style>
    72. <script>
    73. // var event1=document.getElementById('event1')
    74. // console.log(event1)
    75. var big=document.getElementById('bigImg')
    76. //获取遮罩层dom实现遮罩层跟随鼠标位置移动
    77. var mask = document.querySelector('.mask');
    78. function mouseMove(event){
    79. // console.log(big.style)
    80. //offsetX:鼠标坐标到元素的左侧的距离
    81. //offsetWidth 除了外边距(margin)以外,所有的宽度(高度)之和
    82. let left = event.offsetX - mask.offsetWidth / 2;
    83. //offsetY:鼠标坐标到元素的顶部的距离
    84. //offsetHeight:元素的像素高度 包含元素的垂直内边距和边框,水平滚动条的高度,且是一个整数
    85. let top = event.offsetY - mask.offsetHeight / 2;
    86. // 约束范围,保证光标在div范围内,都是以父盒子div为参考对象的
    87. //超出图片左侧
    88. if (left <= 0) left = 0;
    89. //超出图片右侧
    90. if (left >= mask.offsetWidth) left = mask.offsetWidth;
    91. if (top <= 0) top = 0;
    92. if (top >= mask.offsetHeight) top = mask.offsetHeight;
    93. // 修改元素的left|top属性值
    94. //遮罩层
    95. mask.style.left = left + "px";
    96. mask.style.top = top + "px";
    97. //放大镜,你向左移动鼠标,图片就是向右移动,运动方向是相反的
    98. //与css中width:200%,height:200%相对应,建议以后放大倍数为2n
    99. big.style.left = -2*left + "px";
    100. big.style.top = -2*top + "px";
    101. }
    102. script>
    103. html>

    认识到一个元素能够跟随鼠标移动而移动那么肯定是使用了定位,这是必须得知道的

     完整VUE代码:

     :src的意思是动态绑定一个图片资源地址

    1. <template>
    2. <div class="spec-preview">
    3. <img :src="imgObj.imgUrl" />
    4. <div class="event" @mousemove="handler">div>
    5. <div class="big">
    6. <img :src="imgObj.imgUrl" ref="big" />
    7. div>
    8. <div class="mask" ref="mask">div>
    9. div>
    10. template>
    11. <script>
    12. export default {
    13. methods:{
    14. handler(event){
    15. let big=this.$refs.big
    16. //获取遮罩层dom实现遮罩层跟随鼠标位置移动
    17. let mask=this.$refs.mask;
    18. //offsetX:鼠标坐标到元素的左侧的距离
    19. //offsetWidth 除了外边距(margin)以外,所有的宽度(高度)之和
    20. let left=event.offsetX-mask.offsetWidth/2;
    21. //offsetY:鼠标坐标到元素的顶部的距离
    22. //offsetHeight:元素的像素高度 包含元素的垂直内边距和边框,水平滚动条的高度,且是一个整数
    23. let top=event.offsetY-mask.offsetHeight/2;
    24. // 约束范围,保证光标在div范围内,都是以父盒子div为参考对象的
    25. if(left<=0)left=0;
    26. if(left>=mask.offsetWidth)left=mask.offsetWidth;
    27. if(top<=0)top=0;
    28. if(top>=mask.offsetHeight)top=mask.offsetHeight
    29. // 修改元素的left|top属性值
    30. //遮罩层
    31. mask.style.left=left+'px';
    32. mask.style.top=top+'px'
    33. //放大镜,你向左移动鼠标,图片就是向右移动,运动方向是相反的
    34. big.style.left=-2*left+'px'
    35. big.style.top=-2*top+'px'
    36. }
    37. }
    38. }
    39. script>

    放大镜就分享到这里,如有问题,欢迎指出~~~~~~如果对你有帮助欢迎点赞收藏一波哟

  • 相关阅读:
    SpringCloud Stream消息驱动
    Strus2 系列漏洞
    Python Asyncio 之网络编程方法详解
    vue中关闭eslint的检测,eslint的配置,及格式化文件时的配置
    Java手写插入排序和算法案例拓展
    Android Jetpack之ViewModel、LiveData
    初识Kafka
    1.7.3、计算机网络体系结构分层思想举例
    学习SpringMVC(1)
    记录SpringCloud使用Zookeeper做服务中心遇到的问题
  • 原文地址:https://blog.csdn.net/weixin_59334478/article/details/126809818