php 放大镜,图片放大镜效果实战总结

摘要:本次实战主要完成了图片放大镜的效果,通过定义原始图片,放大镜,放大后的图片,然后设置放大后的图片为原始图片的3倍,通过鼠标移上显示放大后的图片,并通过位移计算当前放大镜的位置,设置放大后图片的偏移量,来显示放大后的图片效果。代码如下:html>

本次实战主要完成了图片放大镜的效果,通过定义原始图片,放大镜,放大后的图片,然后设置放大后的图片为原始图片的3倍,通过鼠标移上显示放大后的图片,并通过位移计算当前放大镜的位置,设置放大后图片的偏移量,来显示放大后的图片效果。

代码如下:html>

图片放大镜效果

$(function() {

$('#big').hide();//默认隐藏放大后的图片

// ----------------鼠标移上原始图片开始

$('#normal').mouseover(function(){    //鼠标移上原始图片时

$('#show,#big').show();//鼠标移上时,显示两张图片

$(this).mousemove(function(curMove){

//实时计算原始图片上小方块的移动距离,鼠标位于小方块的中间位置

$('#show').css({

'left':curMove.pageX-$('#show').width()/2,

'top':curMove.pageY-$('#show').height()/2

})

})

//鼠标在原始图片上的移动事件

$('#normal').mousemove(function(e){

//获取鼠标当前位置

let [curX,curY]=[e.clientx,e.clienty];

//获取原图窗口距离文档的偏移位置

let [docX,docY]=[$('#normal').offset().left,$('#normal').offset().top];

//计算鼠标的相对位置

let [relativeX,relativeY]=[curX-docX,curY-docY];

//放大镜的宽高

let [showWidth,showHeight]=[$('#show').width()/2,$('#show').height()/2];

//鼠标移动时,设置放大镜的位置

$('#show').css({left:`${relativeX}-${showWidth}px`,top:`${relativeY}-${showHeight}px`});

//控制放大镜只能在原图窗口内移动,不能越界

//获取当前放大镜的偏移位置

let [curPYWidth,curPYHeight]=[$('#show').position().left,$('#show').position().top];

//获取最大的框高,用于定义边界

let [maxWidth,maxHeight]=[$('#normal').width()-$('#show').width(),$('#normal').height()-$('#show').height()];

//越界时重新调整放大镜的位置

if(curPYWidth<=0){$('#show').css('left','0px')}

if(curPYWidth>=maxWidth){$('#show').css('left',`${maxWidth}px`)}

if(curPYHeight<=0){$('#show').css('top','0px')}

if(curPYHeight>=maxHeight){$('#show').css('top',`${maxHeight}px`)}

//重新获取放大镜的偏移位置

[curPYWidth,curPYHeight]=[$('#show').position().left,$('#show').position().top];

//定义放大图片的位置

let [newX,newY]=[curPYWidth*3,curPYHeight*3];

//设置放大图片的位置

$('#big').find('img').css({'left':`-${newX}px`,'top':`-${newY}px`});

})

})

// ----------------鼠标移上原始图片结束

//鼠标移出原始图片时,隐藏放大镜和右侧的图片

$('#normal').mouseleave(function(){

$('#show,#big').hide();

})

})

    

        

zuoye.css*{ margin:0;padding:0; }

#normal{width: 450px;height: 450px;border: 1px solid #000;position: fixed;top: 20px;left: 20px;}/*原始图片*/

#normal img{width: 100%;height: 100%;}

#show{width: 150px;height: 150px;background: #754930;opacity: 0.4;position: absolute;display: none;}/*放大镜长宽*/

#big{width: 450px;height: 450px;border: 1px solid #000;position: relative;left: 520px;top: 20px;overflow: hidden;}/*放大图片区域长宽*/

#big>img{position: absolute;width: 1350px;height: 1350px;}/*放大图片的长宽*/

批改老师:灭绝师太批改时间:2018-11-21 17:45:16

老师总结:每一个js效果,只要摸清楚逻辑,用起来就不难,加油!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/552627.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle未授权sql查询,【oracle使用笔记3】sql查询遇到的若干问题总结

在整个开发过程当中&#xff0c;sql查询操做的频率比较高&#xff0c;在不一样的业务场景下会出现不一样的查询需求&#xff0c;如下是我在项目中遇到的查询需求&#xff0c;总结一下。sql【查询一】&#xff1a;取查询出的第一条数据oracleselect * from (select * from [ta…

linux内核mtd分区,linux-kernel – 在运行时调整MTD分区大小

我正在使用嵌入式设备,并希望能够通过Linux调整其MTD分区大小而无需重新启动.问题是我的Linux映像大小已经增加,它所在的当前MTD分区(mtd0)现在太小了.但是,它之后的分区(mtd1)是用于存储配置信息的JFFS2部分,因此重新调整大小不是一个选项,因为配置可能会丢失.我的目标是&…

linux 查看握手时间,实战:tcpdump抓包分析三次握手四次挥手

本文档以实战的形式介绍tcpdump抓包分析三次握手四次挥手的过程。执行tcpdump命令tcpdump -n -i ens32 host 192.168.10.10 and 42.186.113.26 >> /tmp/tcpdump.txtping game.campus.163.comcurl http://game.campus.163.comcurl http://game.campus.163.com结束后&#…

linux 高级i o函数,高级I/O函数

对于socket&#xff0c;最基本的输入输出函数就是&#xff0c;read和write。它们最基本&#xff0c;同样功能也是最少的。Unix中有几个函数是read/write的变种&#xff0c;在基本的输入输出功能上&#xff0c;还增加了一些非常使用的功能和特性&#xff0c;它们是&#xff1a;r…

调整linux块大小,Linux系统之更改默认块大小

查看操作系统块大小&#xff1a;#tune2fs -l /dev/sda1 |grep Block size ( tune2fs -l /dev/sda1可以查看更多相关文件系统的详细信息 )查看os系统页的大小: #getconf PAGESIZE查看某分区的block和inode的数量和大小&#xff0c;通常block比inode多tune2fs …

安装linux必不可少的一个分区,安装linux系统对硬盘分区时,必须有的两种分区类型是什么?...

安装Linux系统对硬盘分区时&#xff0c;必须有两种分区类型&#xff1a; 根分区和交换分区。根分区就是root分区&#xff0c;所有的东西都在这个分区内。 /swap分区是交换分区&#xff0c;是一定磁盘空间(分区或文件)&#xff0c;用于将部分内存中的数据换下来&#xff0c;以腾…

ubuntu和linux服务器,Linux服务器系统CentOS和Ubuntu Server如何选择? | 偶乃秋辰

在秋辰看来&#xff0c;目前最优秀的服务器系统就是Linux&#xff0c;但是Linux并不能说是一套完整的操作系统&#xff0c;准确的说它只是系统的内核&#xff0c;否则也不会有那么多的发行版如&#xff1a;Red Hat、CentOS、Debian、Ubuntu、Fedora等。其实Linux发行版系统很多…

linux查看tcp络连接日志,Linux监控TCP连接数并触发日志记录

场景由于服务器经常半夜出现TCP连接数暴增&#xff0c;没办法及时查看处理&#xff0c;回头看记录又看不到现象&#xff0c;不好排查&#xff0c;故编写此脚本用于记录日志。脚本内容#!/bin/bash#任务计划设置此脚本每分钟执行一次即可&#xff0c;* * * * * sh /shell/tcp_sta…

linux cmake变量,linux – CMake错误:此项目中使用了以下变量,但它们设置为NOTFOUND...

我正在尝试使用tar文件whalebot-0.02.00.tar.gz配置whalebot爬虫.我已正确提取它&#xff1a;rootAdmin1:~/dls# tar xvzf whalebot-0.02.00.tar.gz之后我想配置它&#xff1a;rootAdmin1:~/dls/whalebot# ./configure它给了我错误&#xff1a;bash: ./configure: No such file…

linux命令history作用,Linux命令:history命令历史的管理及用法

bash可以保存的过去曾经执行过的命令。当某个用户登录到shell中&#xff0c;会读取该用户家目录中的~/.bash_history文件&#xff0c;并将历史命令列表保存到内存中。当用户退出当前shell时&#xff0c;会将内存中的历史命令列表覆盖至~/.bash_history文件。我们可以通过# hist…

aux 参数 linux,Linux下ps aux命令中STAT的参数含义(转)

$ ps auxUSER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMANDroot 11 100.0 0.0 0 16 ?? RL 4Dec09 98403:03.48 [idle: cpuroot 12 100.0 0.0 0 16 ?? RL 4Dec09 98430:12.35 [idle: cpust00…

linux系统nginx启动不了,nginx启动不了,求大神帮助!

服务器挂了&#xff0c;折腾半天Nginx都起不来&#xff0c;不知道咋回事&#xff0c;本人小白用户&#xff0c;求大神帮帮忙&#xff01;# nginx -tnginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/c…

linux 黑屏后死机,如何修复各种各样的黑屏死机

每次我们打开这些设备&#xff0c;我们都希望我们生活中的科技能发挥作用。当他们不能工作时&#xff0c;会让我们非常沮丧&#xff0c;尤其是当我们不知道如何解决问题时。所谓的“死亡黑屏”在操作系统之间很常见&#xff0c;当您打开机器&#xff0c;但屏幕空白。有时监视器…

c语言atof字母,C语言字符转换之atof()

现在看下强大的atof()函数&#xff0c;哇哈哈&#xff1a;/* Convert a string to a double. */doubleatof (const char *nptr){return strtod (nptr, (char **) NULL);}#if HAVE_CONFIG_H# include #endif#include #ifndef errnoextern int errno;#endif#include #if defined …

cmd文件 c语言的段,对于TMS320F2812的CMD文件的理解

1.COFF格式要谈CMD文件&#xff0c;首先不可避免的要谈下COFF格式&#xff0c;COFF格式是通用目标文件格式(Common Object FileFormat)的缩写&#xff0c;它是一种流行的二进制可执行文件格式&#xff0c;在DSP里二进制可执行文件包括库文件(.lib)、目标文件(.obj)和最终可执行…

w ndows7与XP哪个好,windows7和xp哪个好 windows7好用吗

经常可以在电脑百事各个QQ群中看到电脑爱好者朋友问各种各样的电脑问题&#xff0c;有的朋友问的问题特别搞笑&#xff0c;其实很多问题都问的等于没人能够被你满意答案&#xff0c;比如有人问过一些比较搞笑的问题&#xff0c;如谁能给介绍一个500G内存&#xff0c;800元的独立…

android点击事件的优先级,Android事件体系全面总结+实践分析,系列篇

前言在这一个月里&#xff0c;我利用闲余的时间看了下最近Android职业发展这块该怎么选择&#xff1f;这个问题各位大神的回答都非常透彻&#xff0c;相信对大家或多或少都在一定程度上有很大的帮助&#xff0c;今天在这里写这篇文章更多的是想以我开发十年的工作经历&#xff…

android各组件翻译,Android App框架指南(译文)

该系列文章是对Android推出的架构组件相关文章&#xff0c;按作者自己理解来翻译的&#xff0c;同时标记有作者自己一些简单笔记。如果读者发现文中有翻译不准确的地方&#xff0c;或者理解错误的地方&#xff0c;请不吝指教。源自Android官方Guide to app architecturel princ…

signature=27ba8feff228d8babc1d1762f8da4445,Embedding digital signatures into digital payloads

摘要&#xff1a;A file may be transferred from one processor-based system to another. The file may include executable binary data together with an integrated digital signature. Each time a receiving processor-based system boots, the digital signature is au…

鸿蒙手机是个噱头,华为鸿蒙不是谈判噱头 必要时会应用手机当中!

7月30日&#xff0c;华为2019年上半年财报发布会上&#xff0c;华为董事长梁华在接受媒体采访时回应称&#xff0c;“鸿蒙”系统不是用来应对与美国谈判的噱头。今年5月&#xff0c;美国商务部将华为列入“实体清单”后不久&#xff0c;华为一系列“备胎”方案开始浮出水面&…