JS實現(xiàn)的仿QQ空間圖片彈出效果代碼
本文實例講述了JS實現(xiàn)的仿QQ空間圖片彈出效果代碼。分享給大家供大家參考,具體如下:
<script type="text/javascript">
function imageShow(which_click) {
var image_path = which_click;
//alert(image_path);
var tag_top = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
//創(chuàng)建底層灰色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:relative;background:black;top:0;filter: Alpha(Opacity=80);Opacity:0.8;";
document.body.appendChild(index_tag);
//index_tag.ondblclick = closeIndexTag;
index_tag.onclick = closeIndexTag;
//創(chuàng)建圖片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("是否確定關(guān)閉圖片顯示");
if(clsOK)
closeIndexTag();
return false;
}
img_tag.onclick = closeIndexTag;
//img_tag.onmousemove = barDidplay;
document.body.appendChild(img_tag);
//構(gòu)建圖片關(guān)閉按鈕
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:none;border:0px solid white;filter:Alpha(Opacity=50);Opacity:0.5;cursor:pointer;'> 關(guān)閉 </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);
}
}
</script>
html部分:
<a class="add" href="javascript:;" onclick="imageShow('img/hn_bg.jpg')">
<span>圖片效果</span>
</a>
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《JavaScript查找算法技巧總結(jié)》、《JavaScript動畫特效與技巧匯總》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
- 原生JS仿QQ閱讀點擊展開、收起效果
- js實現(xiàn)仿qq消息的彈出窗效果
- JS實現(xiàn)超簡單的仿QQ折疊菜單效果
- JS實現(xiàn)仿QQ面板的手風琴效果折疊菜單代碼
- js實現(xiàn)帶緩沖效果的仿QQ面板折疊菜單代碼
- JS實現(xiàn)仿QQ聊天窗口抖動特效
- 純js實現(xiàn)仿QQ郵箱彈出確認框
- 基于zepto.js實現(xiàn)仿手機QQ空間的大圖查看組件ImageView.js詳解
- javascript仿qq界面的折疊菜單實現(xiàn)代碼
- js設(shè)置控件的隱藏與顯示的兩種方法
- js菜單點擊顯示或隱藏效果的簡單實例
- javascript 控制 html元素 顯示/隱藏實現(xiàn)代碼
- JS實現(xiàn)的模仿QQ頭像資料卡顯示與隱藏效果
相關(guān)文章
解析javascript圖片懶加載與預(yù)加載的分析總結(jié)
本篇文章介紹了javascript圖片懶加載與預(yù)加載的分析,詳細的介紹了懶加載和預(yù)加載的問題,有需要的可以了解一下。2016-10-10
JS實現(xiàn)帶圓弧背景漸變效果的導(dǎo)航菜單代碼
這篇文章主要介紹了JS實現(xiàn)帶圓弧背景漸變效果的導(dǎo)航菜單代碼,涉及JavaScript基于鼠標事件操作頁面元素屬性的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10
js中substring和substr兩者區(qū)別和使用方法
這篇文章主要介紹了js中substring和substr兩者區(qū)別和使用方法,每一個步驟都有相應(yīng)的文字介紹,感興趣的小伙伴們可以參考一下2015-11-11
javascript實現(xiàn)文本框標簽驗證的實例代碼
這篇文章主要介紹了javascript實現(xiàn)文本框標簽驗證的實例代碼,需要的朋友可以參考下2018-10-10
JavaScript中使用import 和require打包后實現(xiàn)原理分析
這篇文章主要介紹了JavaScript中使用import 和require打包后實現(xiàn)原理分析,需要的朋友可以參考下2018-03-03

