js 图片点击放大功能
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1"/>
<title>loading</title>
</head>
<body>
<a href="javascript:;" rel="http://www.zuixiaoyao.test/images/v2/index/header.jpg" id="fas" style="display:block;" onclick="creatediv(this)">
<img src="erweima.jpg" />
</a>
</body>
</html>
<script>
function getPos(element){
if ( arguments.length != 1 || element == null ) {
return null;
}
var offsetTop = element.offsetTop;
var offsetLeft = element.offsetLeft;
var offsetWidth = element.offsetWidth;
var offsetHeight = element.offsetHeight;
while( element = element.offsetParent ) {
offsetTop += element.offsetTop;
offsetLeft += element.offsetLeft;
}
return { absoluteTop: offsetTop, absoluteLeft: offsetLeft,
offsetWidth: offsetWidth, offsetHeight: offsetHeight };
}
function creatediv(elm){
var deld = document.getElementById('version_sz_h');
if(deld && deld.parentNode && deld.tagName != 'BODY'){
deld.parentNode.removeChild(deld);
}
var div = document.createElement('div');
var pos = getPos(elm);
div.id = 'version_sz_h';
div.style.position = 'absolute';
div.style.zIndex = 99999;
div.style.top = pos.absoluteTop +'px';
div.style.left = pos.absoluteLeft +'px';
div.style.width = '35px';
div.style.height = '35px';
var img = '<img src="loading.gif" width="35px" height="35px"/>';
div.innerHTML = img;
var image = new Image();
image.onload = function(){
var w = this.width;
var h = this.height;
var b = w/h;//>1 宽屏图片 <1 长形图片
div.innerHTML = '<img src="'+ elm.getAttribute('rel') +'" width="100%" height="100%" style="cursor:pointer;" id="hoverImg"/>';
var Lw = 0;
var Lh = 0;
var timer = setInterval(function(){
if(b >= 1){//宽屏
Lh += 10;
Lw += 10*b;
}else{
Lw += 10;
Lh += 10*b;
}
if((Lh+35) >= h && (Lw+35) >= w){
div.style.width = w + 'px';
div.style.height = h + 'px';
window.clearInterval(timer);
}else{
div.style.width = 35 + Lw +'px';
div.style.height = 35 + Lh +'px';
}
},10);
var imgBox = document.getElementById('hoverImg');
var flag = 1;
imgBox.onclick = function(){
if(flag){
var Lh = h;
var Lw = w;
var timer1 = setInterval(function(){
if(b >= 1){//宽屏
Lh -= 10;
Lw -= 10*b;
}else{
Lw -= 10;
Lh -= 10*b;
}
if(Lh <= 0 && Lw <= 0){
div.style.width = '0px';
div.style.height = '0px';
window.clearInterval(timer1);
if(div && div.parentNode && div.tagName != 'BODY'){
div.parentNode.removeChild(div);
}
}else{
div.style.width = Lw +'px';
div.style.height = Lh +'px';
}
},10);
flag = 0;
}
}
}
image.src = elm.getAttribute('rel');
document.body.appendChild(div);
}
</script>
js 图片点击放大功能的更多相关文章
- vue图片点击放大功能
因项目需求(ui框架element-ui),需要实现图片的点击放大,还要能旋转以及上下切换.当时第一反应,element-ui好像没有这样的组件,就想过自己写,但是那个旋转翻页上下切换感觉有点麻烦,不 ...
- ios开发图片点击放大
图片点击放大,再次点击返回原视图.完美封装,一个类一句代码即可调用.IOS完美实现 创建了一个专门用于放大图片的类,以下为.h文件 #import <Foundation/Foundation. ...
- viewer && ImageFlow 图片滚动组件 图片点击放大 可以滚轮放大缩小 viewer
ImageFlow https://finnrudolph.com/products/imageflow https://github.com/countzero/ImageFlow http://w ...
- jquery插件jquery.LightBox.js之点击放大图片并左右点击切换图片(仿相册插件)
该插件乃本博客作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧. 此插件旨在实现目前较为流行的点击放大图片并左右点击切换图片的效果,您可以根据自己的实 ...
- Android中Textview显示Html,图文混排,支持图片点击放大
本文首发于网易云社区 对于呈现Html文本来说,Android提供的Webview控件可以得到很好的效果,但使用Webview控件的弊端是效率相对比较低,对于呈现简单的html文本的话,杀鸡不必使用牛 ...
- 微信企业号办公系统-图片预览放大功能-previewImage
在微信里看过文章的应该知道,文章里的图片点击后可以放大.分享和保存. 然而自己在微信里开发的网页,里面的图片点击后没办法实现这个效果,然后就去看了下微信JS文档,里面有个previewImage可以调 ...
- 动画--android图片点击放大动画,并遮挡旁边的控件
http://blog.csdn.net/s13488941815/article/details/40649823: 首先是点击放大可以使用android自带的缩放动画,因为要遮盖其他控件,就需要控 ...
- 自写图片遮罩层放大功能jquery插件源代码,photobox.js 1.0版,不兼容IE6
阿嚏~~~ 话说本屌丝没啥开发插件的经验,可是天公不作美,公司须要让我自己开发个图片放大的插件 但公司老大的话,宛如吾皇之圣旨,微臣必当肝脑涂地,莫敢不从啊~~~ 于是乎,作为一个超级小白,本人仅仅能 ...
- Hexo next博客的pjax一个Bug引发的关于pjax用法的小技巧-----pjax后图片点击放大的js失效
文章目录 广告: 背景 发现 解决 get技能 广告: 本人博客地址:https://mmmmmm.me 源码:https://github.com/dataiyangu/dataiyangu.git ...
随机推荐
- registerForRemoteNotificationTypes: is not supported in iOS 8.0 and
注册模式: if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) { [[UIApplication sharedA ...
- Dynamic proxy
import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflec ...
- CentOS7 安装Bind
简要记录安装Bind的过程以及遇到的问题 一. 虚拟机准备 准备了2台虚拟机,都是装的CentOS7 64_1的IP地址为192.168.1.160,2的地址为161.161作为DNS服务器. 二.下 ...
- unity3d 依据指定的Assets下的目录路径 返回这个路径下的全部文件名称
using UnityEngine; using System.Collections; using System.Collections.Generic; using System.IO; < ...
- HDOJ--4821--String【弦hash】
联系:http://acm.hdu.edu.cn/showproblem.php?pid=4821 题意:给一个字符串,选m个长度为l的子串组成新的串.要求这m个子串互不同样,问有多少种组合. 字符串 ...
- 组合数处理(逆元求解)...Orz
网上发现了不错的博客讲解... 熊猫的板子:http://blog.csdn.net/qq_32734731/article/details/51484729 组合数的预处理(费马小定理|杨辉三角|卢 ...
- Crazy Rows
Problem You are given an N x N matrix with 0 and 1 values. You can swap any two adjacent rows of the ...
- redis权限认证(设置密码)的方法
redis可以通过设置密码来增强安全强度.除了设置密码,我们还可以通过修改redis的默认端口.对端口做防火墙等.那么如何开启redis的密码功能呢?以下就是详细的步骤方法: 打开redis.conf ...
- 第12章 代理模式(Proxy Pattern)
原文 第12章 代理模式(Proxy Pattern) 代理模式 概述: 在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对象,如果直接访问会给系统带来不必要 ...
- 2077 汉诺塔IV
Problem Description 还记得汉诺塔III吗?他的规则是这样的:不允许直接从最左(右)边移到最右(左)边(每次移动一定是移到中间杆或从中间移出),也不允许大盘放到小盘的上面.xhd在想 ...