参考网上代码,自己做了一个仿QQ空间图片弹出效果,但现在还无法在弹出层切换图片。
以下是js代码:
function imageShow(which_click) {
var image_path = which_click.src;
//alert(image_path);
var tag_top = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
//创建底层灰色DIV
var index_tag = document.createElement("div");
index_tag.style.cssText = "width:100%;height:"+Math.max(document.body.clientHeight,document.body.offsetHeight,document.documentElement.clientHeight)+"px;position:absolute;background:black;top:0;filter: Alpha(Opacity=80);Opacity:0.8;";
document.body.appendChild(index_tag);
index_tag.ondblclick = closeIndexTag;
//创建图片DIV
var img_tag = document.createElement("div");
img_tag.style.cssText = "font:12px /18px verdana;overflow:auto;text-align:center;position:absolute;width:200px;border:5px solid white;background:white;color:white;left:"+(parseInt(document.body.offsetWidth)/2-100)+"px;top:"+(document.documentElement.clientHeight/3+tag_top)+"px;";
img_tag.innerHTML = "<div style='padding:10px;background:#cccccc;border:1px solid white'><img src='images/loading.gif' /><br /><br /><b style='color:#999999;font-weight:normal'>Image loading...</b><br /></div>";
img_tag.oncontextmenu = function() {
var clsOK=confirm("是否确定关闭图片显示");
if(clsOK)
closeIndexTag();
return false;
}
img_tag.onmousemove = barDidplay;
document.body.appendChild(img_tag);
//构建图片关闭按钮
var close_tag = document.createElement("div");
close_tag.style.cssText = "display:none;position:absolute;left:10px;top:10px;color:black;";
close_tag.innerHTML = "<b style='background:red;border:1px solid white;filter:Alpha(Opacity=50);Opacity:0.5;cursor:pointer;'> 关闭 </b>";
close_tag.onclick = closeIndexTag;
var img = new Image();
img.src = image_path;
img.style.cssText = "border:1px solid #cccccc;filter: Alpha(Opacity=0);Opacity:0;cursor:pointer";
img.onload = imgOK();
function imgOK() {
var temp = 0;
var stop_x = false;
var stop_y = false;
var img_tag_x = img_tag.offsetWidth;
var img_tag_y = img_tag.offsetHeight;
var img_x = img.width;
var img_y = img.height;
var scroll_x=document.documentElement.clientWidth;
var scroll_y=window.innerHeight||document.documentElement.clientHeight;
var yy = 0;
var xx = 0;
if(img_y > scroll_y || img_x > scroll_x){
yy = scroll_y - 100;
xx = (img_x / img_y) * yy;
}else{
xx = img_x + 4;
yy = img_y + 3;
}
img.style.width=xx-4+'px';
img.style.height=yy-3+'px';
var maxTime = setInterval(function() {
temp += 30;
if((img_tag_x + temp) < xx) {
img_tag.style.width = (img_tag_x + temp) + "px";
img_tag.style.left = (scroll_x - img_tag_x - temp)/2 + "px";
} else {
stop_x = true;
img_tag.style.width = xx + "px";
img_tag.style.left = (scroll_x - xx)/2 + "px";
}
if((img_tag_y + temp) < yy) {
img_tag.style.height = (img_tag_y + temp) + "px";
img_tag.style.top = (tag_top + (scroll_y - img_tag_y - temp)/2) + "px";
} else {
stop_y = true;
img_tag.style.height = yy + "px";
img_tag.style.top = (tag_top + (scroll_y - yy)/2) + "px";
}
if(stop_x && stop_y) {
clearInterval(maxTime);
img_tag.appendChild(img);
temp = 0;
imgOpacity(temp);
}
}, 1);
img_tag.innerHTML="";
img_tag.appendChild(close_tag);
}
function closeIndexTag() {
document.body.removeChild(index_tag);
document.body.removeChild(img_tag);
}
function imgOpacity(temp_imgOpacity) {
var temp = temp_imgOpacity;
temp += 10;
img.style.filter = "alpha(opacity=" + temp + ")";
img.style.opacity = temp/100;
var imgTime = setTimeout(function() {imgOpacity(temp);}, 10);
if(temp > 100)
clearTimeout(imgTime);
}
var bar_show;
function barDidplay(){
clearTimeout(bar_show);
close_tag.style.display = "block";
bar_show = setTimeout(function() {close_tag.style.display = "none"}, 1000);
}
}
分享到:
相关推荐
本示例“自定义ListView仿QQ空间下拉图片放大效果”由雷惊风实现,旨在模仿QQ空间顶部图片在用户下拉时的放大动画,当用户松手时,图片会有一个反弹的效果。这一功能的实现涉及到多个Android开发的关键知识点,包括...
"带阻尼效果的scrollview,仿QQ空间"就是一个这样的案例,它涉及到移动应用开发中的滚动视图(ScrollView)设计,以及如何通过模拟真实物理世界的阻尼现象来提升用户体验。在此项目中,开发者修复了上一个版本的已知...
综上所述,实现"js仿QQ空间相册照片展示效果"涉及到前端开发的多个方面,包括响应式布局、图片处理、事件处理、动画效果、模态窗口、事件委托、性能优化和无障碍性设计。掌握这些技术,不仅能提升你的编程能力,还能...
5. 图片加载库:仿QQ空间的列表通常会包含图片,因此需要一个图片加载库,如Glide或Picasso,来处理网络图片的加载、缓存和显示。这些库能够优化图片加载过程,防止内存溢出,并提供图片占位符、错误图等功能。 6. ...
本教程将详细讲解如何利用jQuery实现一个高仿朋友圈或QQ空间图片相册查看的效果,这涉及到JavaScript编程、CSS样式设计以及响应式布局等多个知识点。 首先,jQuery的核心在于它的选择器,它可以方便地选取HTML元素...
在iOS开发中,"仿qq空间列表"是一个常见的需求,主要涉及到UITableView的自定义和高度自适应。这个项目标签为"tableView",意味着我们将深入探讨UITableView的使用技巧以及如何实现类似QQ空间的时间线布局。 首先,...
首先,我们来看“仿qq空间登录UI”这个标题,它表明我们要构建的界面与QQ空间的登录界面类似。QQ空间作为一款流行的社交媒体平台,其登录界面设计简洁、易于操作,因此在模仿时需要考虑用户体验和视觉效果。这通常...
【图片之间的切换】在仿QQ空间的照片展示效果中,用户不仅能看到单个图片的大图,还能方便地切换到其他图片。这通常通过JavaScript或者jQuery实现,通过监听上一张/下一张按钮的点击事件,更新GreyBox显示的图片URL...
整体而言,文章介绍了一种利用JavaScript实现仿QQ空间图片弹出效果的技术方案,覆盖了JavaScript、CSS以及前端开发的多个关键知识点,适合需要提高网页交互效果和用户体验的前端开发者学习和参考。
"JQ仿QQ空间相册插件"就是这样一个解决方案,它旨在为用户提供类似QQ空间相册的浏览体验,具备相册封面展示以及照片的上下循环切换功能。这个插件基于JavaScript库jQuery构建,jQuery以其简洁易用的API,大大简化了...
本教程将深入探讨如何使用jQuery来实现一个仿QQ空间装扮预览图片的感应鼠标提示效果,这一功能是用户界面设计中常见且吸引人的元素。 首先,我们需要了解jQuery的基本语法。jQuery的核心概念是选择器,它允许我们...
总的来说,“仿QQ空间js代码”项目是一个典型的前端开发实践,它涵盖了JavaScript基础、DOM操作、事件处理、图片加载与显示等多个方面,对于学习和理解Web开发有很好的帮助。通过实现这个功能,开发者可以深入理解...
QQ空间是中国最受欢迎的社交平台之一,用户可以在这里分享生活点滴、照片、日志以及与朋友们互动。"QQ空间高仿源码"指的是开发者或设计师为了创建一个与QQ空间外观和功能相似的网站或应用,所编写的源代码。这类源码...
【标题】"仿QQ空间图片放大" 描述的是一个针对图片查看体验的增强插件,其设计灵感来源于QQ空间的图片浏览功能。QQ空间作为中国流行的社交媒体平台之一,其图片展示方式具有一定的用户基础和认可度,这款插件旨在...
本文将深入探讨如何实现这样一个仿QQ空间的时间轴特效,主要基于JavaScript库jQuery进行开发。 首先,我们需要理解时间轴的基本结构。一个典型的时间轴由两部分组成:时间线(timeline)和事件(events)。时间线...
总的来说,"仿QQ空间时光轴"项目利用jQueryTimelinr插件实现了类似QQ空间的时光轴功能,为用户提供了一种直观的方式来展示和浏览一系列时间相关的事件。通过理解和应用这个插件,开发者可以轻松地在自己的网站上创建...
"仿QQ空间广告图"这个主题表明我们关注的是如何创建类似于QQ空间中出现的广告图像,这些图像通常用来吸引用户的注意力,推广产品或服务。在这个过程中,我们将探讨几个关键的知识点: 1. **设计原则**:广告图的...
本项目标题“仿QQ空间底部UI设计”旨在创建一个与QQ空间底部导航栏相似的用户界面,以提供类似的功能和交互体验。QQ空间作为一款广受欢迎的社交应用,其底部导航栏设计简洁且易于操作,是很多开发者学习和模仿的对象...
综上所述,实现"jquery实现图片浏览类似qq空间图片查看"这一功能,需要掌握jQuery的选择器、DOM操作、事件监听、CSS样式控制、动画效果、图片预加载和Ajax等技术,并结合layer.min.js插件进行实现。理解并熟练运用...