zoukankan      html  css  js  c++  java
  • 放大镜

    一. 放大镜优化
    案例:(01.放大镜的优化.html)
    结构:
    <div class="div1">
    <div class="div2">
    <div class="smallPic" id="smallPic">
    <img src="">
    <div class="zoom" id="zoom"></div>
    </div>
    </div>
    </div>
    <div class="bigPic" id="bigPic"></div>
    样式:
    smallPic
    宽、高、边框、外边距、定位
    smallPic zoom
    定位、位置、不可见、宽、高
    背景色、透明度、鼠标形状
    bigPic
    宽、高、定位、位置、边框、不可见
    div1
    宽、高、定位、位置、背景色
    div2
    宽、高、定位、位置、背景色
    js:
    计算smallPic到body左边缘的距离
    smallPic.offsetLeft + div2.offsetLeft + div1.offsetLeft
    上面的算法不通用,下面的可以实现通用性

    function getAllLeft(obj){
    1)定义存放最终smallPic到body左边缘距离的变量allLeft
    2)获取obj的offsetLeft值赋给变量allLeft
    3)定义正在查找的元素currentObj
    4)循环获取currentObj的具体具有定位的父元素,获取一个就将它的offsetLeft属性值加给allLeft,获取父元素(currentObj.offsetParent)
    5)方法最终返回循环结束后的allLeft
    }
    function getAllTop(obj){

    }
    二. 延迟加载
    主要用于图片的延迟加载
    延迟加载就是图片的显示延迟进行
    延迟加载分析:
    布局分析:
    给定所有的图片标签,但是src属性没有值,所以不会加载图片,自定义属性as给定这个图片的地址。
    技术分析:
    当页面卷屏高度达到一定高度时,将as属性值赋给src瞬间加载图片。
    技术要点:
    1)计算卷去的距离(scrollTop)
    2)计算浏览器的高度(document.documentElement.clientHeight)
    3)计算须要加载的图片的offsetTop
    当满足下面条件时就加载图片
    scrollTop >= 图片.offsetTop - body.clientHeight
    注意:浏览器的scrollTop兼容的获取方式如下:
    var sTop = document.documentElement.scrollTop || document.body.scrollTop
    案例:(02.延迟加载.html)
    结构:
    <div id="top">
    头部
    </div>
    <div id="box">
    <h3>图片欣赏</h3>
    <img src="" as="shuzi/0.png">
    。。。。。。
    </div>
    样式:
    top
    高度,背景色
    img
    宽、高、浮动
    js:
    1)为window添加滚动事件
    2)事件处理程序实现如下:
    获取scrollTop及clientHeight
    遍历所有图片,看哪些图片满足下面的关系
    scrollTop >= 图片到浏览器顶部的距离 -
    document.documentElement.clientHeight
    如果满足,就让这些图片加载,加载过程就是获取as属性值,再将属性值赋给src
    注意:图片到浏览器顶部的距离需要通过函数实现(累加计算)
    3)定义函数getAllTop(obj)

    作业:实现商品图片的放大镜效果
    要求:下面的小图标实现滑动轮播效果

  • 相关阅读:
    【uoj3】 NOI2014—魔法森林
    【bzoj2002】 Hnoi2010—Bounce 弹飞绵羊
    【hdu4010】 Query on The Trees
    【uoj129】 NOI2015—寿司晚宴
    【bzoj2877】 Noi2012—魔幻棋盘
    【bzoj2876】 Noi2012—骑行川藏
    【bzoj2875】 Noi2012—随机数生成器
    【codeforces 235E】 Number Challenge
    【bzoj2154】 Crash的数字表格
    【bzoj3529】 Sdoi2014—数表
  • 原文地址:https://www.cnblogs.com/yangjingyang/p/10210482.html
Copyright © 2011-2022 走看看