• 鼠标指针2


    一. 鼠标指针应用
    案例:(01.拖拽效果.html)
    1) 添加小球的鼠标按下事件
    事件处理函数实现如下:
    1)获取当前鼠标点在小球的位置(deliaX, deliaY)
    2)为矩形添加鼠标移动事件
    2)矩形元素的鼠标移动事件的处理
    定义变量moveX,moveY存放小球left和top属性值
    moveX = pageX - 矩形.offsetLeft - deliaX
    moveY = pageY - 矩形.offsetTop - deliaY
    3) 小球水平、垂直的边界值实现
    a. 如果moveX值小于等于0,则小球的left属性值都是0
    如果moveX值大于等于(矩形宽度 - 小球的宽度),则小球的left属性值都是(矩形宽度 - 小球的宽度)
    b. 垂直情况同a
    4)鼠标抬起,小球停止运动
    添加鼠标抬起事件,事件处理函数实现移出鼠标的移动事件
    练习:(02.拖拽效果的封装.html)
    将拖拽效果的实现封装为一个函数:
    function drag(ball){
    ball.onmousedown = function(evt){
    }
    }
    drag(ball1);
    二. 京东放大镜
    案例:(03.放大镜效果.html)
    1. 结构
    <div id="smallPic">
    <img src="images/xiao.jpg">
    <div id="zoom"></div>
    </div>
    <div id="bigPic"></div>
    2. 样式:
    smallPic
    宽、高、边框、外边距、定位
    zoom
    定位、宽、高、背景色、透明度、边框
    bigPic
    宽、高、背景图片、定位、位置、边框
    3. js
    1)鼠标进入smallPic时,显示放大镜和右侧大图
    鼠标离开smallPic时,隐藏放大镜和右侧大图
    2)鼠标进入smallPic时,实现放大镜的鼠标跟随效果
    3)放大镜移动时,右侧显示放大的内容
    放大镜移动175的距离,大图移动400的距离,所以小图移动1像素,大图移动400/175像素
    大图移动使用backgroundPosition
    bigPic.style.backgroundPosition = -moveX * 400/175 + 'px ' + -moveY * 400/175 + 'px';

    作业:放大镜实用
    结构:
    两大块:上边和下边
    上边:左边和右边
    左边:小图和放大镜
    右边:大图
    下边:两张小图

    <div id="main">
    <div id="left">
    <img src="images/image0.jpg" id="leftImg">
    <div id="zoom"></div>
    </div>
    <div id="right">
    <img src="images/images0.jpg">
    </div>
    </div>
    <div id="viewImg">
    <img src="images/image0.jpg">
    <img src="images/image1.jpg">
    </div>
    样式:
    main
    外边距
    left
    宽、高、边框、定位
    leftImg
    宽、高
    zoom
    定位、宽、高、背景色、透明度、鼠标形状、不可见
    right
    宽、高、不可见、内容隐藏
    viewImg
    上、左外边距
    viewImg img

    js:
    1)计算放大镜的尺寸
    放大镜尺寸:左侧div尺寸 == 右侧div尺寸:大图的尺寸
    2)计算放大的倍数
    右侧div的宽度/放大镜的宽度
    3)右侧大图移动的实现
    改变div的滚动位置,设定两个属性
    scrollLeft
    scrollTop
    4)点击下面小图,上面左侧及右侧的图片随之改变
    为每个小图添加单击事件
    事件处理程序实现将当前单击的小图的src属性值赋给上面左侧及右侧图片的src属性。

  • 相关阅读:
    《疯狂Java讲义》(二十) ---- 系统相关类
    《疯狂Java讲义》(十九)---- 与用户交互
    《疯狂Java讲义》(十八)---- JAR文件
    《疯狂Java讲义》(十七)---- 对象与垃圾回收
    《疯狂Java讲义》(十六)---- 枚举类
    《疯狂Java讲义》(十五)---- 内部类
    疯狂Java讲义(十四)---- 抽象类和接口
    疯狂Java讲义(十三)---- 类成员
    疯狂Java讲义(十二)---- equals
    Algorithm: Euclid's algorithm of finding GCD
  • 原文地址:https://www.cnblogs.com/yangjingyang/p/10210478.html
Copyright © 2020-2023  润新知