美文网首页
H5-在图片上定位

H5-在图片上定位

作者: 凌风x | 来源:发表于2018-07-16 18:08 被阅读196次

首先 弄清楚定位的方法
position:

1.absolute:

生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

2.fixed

生成绝对定位的元素,相对于浏览器窗口进行定位。
元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。

3.relative

生成相对定位的元素,相对于其正常位置进行定位。
因此,"left:20" 会向元素的 LEFT 位置添加 20 像素。

4.static

默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。

5.inherit

规定应该从父元素继承 position 属性的值。

从上面这些属性可以看出:如果你要做一个类似于“返回顶部”的按钮,那么用fixed没毛病完全OK,但是如果要相对于背景图进行定位,还要对不同屏幕的机型进行适配,这个恐怕fixed就不适用了。

那么问题来了,此题如何破?

师兄雷利的风格不多BB直接上代码

CSS
    .outer{
    position: absolute;/*使用绝对定位 */
    top: 47%;/*距离第一个父元素47%*/
    /*自动居中*/
    margin-left: auto;
    margin-right: auto;
    left: 0;
    right: 0;
}
JS
    setTime(){
      let time= setInterval(()=>{
       if(this.setHeight()>0)clearInterval(time);
       },0);//时间可以调节
    }
   setHeight(){
     //console.log("set height");
      var height=document.getElementsByClassName("hongbao_back2")[0].offsetHeight;//获取背景图的高度
      if(height>0)document.body.style.height=height+"px";//将body的高度设置为背景图的高度
      return height;
   }

原理

首先,由于背景图片是自适应的也就是说宽度和高度都有可能变化,不可预测, 所以在css不变的情况下使用fixed肯定是达不到效果的。我们注意到absolute定位是根据第一个父元素定位的,如果没有static定位那肯定就是顶级父元素body了,同时如果图片是全部的背景图,那么也就是图片的宽高也就是body的宽高了。至此我们可以调整思路,将body的高度设置为背景图的高度,这样在absolute定位中就相当于对图片定位了。

其次,由于DOM树的渲染和图片的加载都有延迟,所以我们需要通过setInterval()实现一个监听,一旦我们获取到图片的高度,便更新body的高度,这样我们就实现了相对于背景图定位。

相关文章

  • H5-在图片上定位

    首先 弄清楚定位的方法position: 1.absolute: 生成绝对定位的元素,相对于 static 定位以...

  • HTML文字在图片上定位

    2018.03.23 html文字在图片上定位 我的代码: 师傅的代码: 字体使用span,两个div的绝对定位也...

  • javascript-放大镜特效

    点击查看 原理:鼠标在小图片上移动时,通过捕捉鼠标在小图片上的位置,定位大图片的位置 注意offsetWidth和...

  • 练习中的问题1

    1.最近看了一个相对定位和绝对定位的问题,我做了一个在图片上定位一行文字,可文字老是下面出到图片外面, 2 这段代...

  • iOS11人机交互指南-视图-05:图片视图 Image Vie

    图片视图在透明或不透明背景上显示单个图片或图片序列。在图片视图中,图片可以被拉伸、缩放或固定到特定位置。默认情况下...

  • 10.CSS定位

    显示形式 示例图片 显示图层 示例图片 相对定位 运行图片 绝对定位 示例图片 固定定位 示例图片 浮动定位 图1...

  • 给背景图片加颜色遮罩

    原理: 利用定位,将透明颜色加到图片上 html css

  • 爆炸效果

    设定Span覆盖在图片上并定位,点击事件加效果分别运动距离x,y运转角度rotate距离,设定图片循环点击及结束后...

  • 《老刘说彩》福彩3D099期

    一、用振幅看百位定位号码3456789[图片][图片] 二、用振幅看十位定位号码23456789[图片][图片] ...

  • 目标检测(R-CNN)

    任务 采用卷积神经网络对目标物体进行分类和定位。 实现步骤 (1)输入图片。(2)在原图片上提取两千左右的候选区域...

网友评论

      本文标题:H5-在图片上定位

      本文链接:https://www.haomeiwen.com/subject/xqwbpftx.html