参考代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title></title>
<script type="text/javascript" language="javascript" src="http://www.codefans.net/ajaxjs/jquery-1.4.2.min.js"></script>
<script type="text/javascript" language="javascript">
$(function() {
$("#right").click(function() {
var roll = $("<div></div>", { css: { position: "absolute", border: "solid 1px #999", left: "806px", top: "10px", height: "494px", width: "1px", background: "#fff"}}).appendTo($("#book").parent())
$(roll).animate({
left: "10px",
width: "398px"
}, 1000, function() {
$("#left").css({"background":"#fff"})
$(roll).fadeOut(300, function() {
$(roll).remove()
})
})
})
})
</script>
</head>
<body style="padding:5pxmargin:0">
<div id="book" style="width:797pxheight:494pxbackground:#cccborder:solid 6px #ccc">
<div id="left" style="width:398pxheight:494pxfloat:leftbackground:url(http://www.codefans.net/jscss/demoimg/201011/PLh.png) no-repeat top leftcursor:pointer"></div>
<div id="right" style="width:398pxheight:494pxfloat:leftbackground:#fffcursor:pointermargin-left:1pxtext-align:right"><p style="margin-top:470pxfont-size:12pxcolor:#999">点这翻页 </p></div>
</div>
</body>
</html>
这个是个类似代码 你看看<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/htmlcharset=gb2312" />
<title>JS实现图片翻书效果</title>
<META http-equiv=imagetoolbar content=no>
<STYLE type=text/css>
#center {
LEFT: 50%POSITION: absoluteTOP: 50%
}
#DHTMLBOOK {
BACKGROUND: #000LEFT: -210pxVISIBILITY: hiddenWIDTH: 420pxPOSITION: relativeTOP: -160pxHEIGHT: 320px
}
#TXTBOX {
FONT-SIZE: 0.8emWIDTH: 410pxCOLOR: #aba193FONT-FAMILY: verdanaPOSITION: absoluteTOP: 320pxTEXT-ALIGN: center
}
.page {
OVERFLOW: hiddenBORDER-LEFT: #000000 1px solidWIDTH: 50%CURSOR: pointerPOSITION: absoluteHEIGHT: 100%
}
.right {
BORDER-RIGHT: #000000 1px solidLEFT: 50%
}
.turn {
BACKGROUND: #000000
}
.img {
WIDTH: 200%POSITION: absoluteHEIGHT: 100%
}
</STYLE>
<SCRIPT type=text/javascript><!--
document.onselectstart = function () { return false}
var nI = 0
var kI = 0
var run = false
function setOpacity(obj,o) {
if (o<0) o=0else if (o>100) o = 100
if (obj.filters)obj.filters.alpha.opacity=oelse obj.style.opacity = o/100
}
function TPR__(p) {
P1.style.left = 50-(2.5*p)+"%"
P1.style.width = (2.5*p)+"%"
setOpacity(P1i, .5*p*p)
if (p == 20) run = false
}
function TPR_(p) {
P2.style.width = 50-(2.5*p)+"%"
setOpacity(P2i, 100-.5*(p*p))
if (p == 20) {
P2i.src = IMGSRC[kI].src
setOpacity(P2i, 100)
P2.style.width = "50%"
for(var i=1i<=20i++) setTimeout("TPR__("+i+")", i*32)
}
}
function TPR() {
if (!run) {
run = true
P01i.src = IMGSRC[kI].src
P1.style.width = 0
kI++
if (kI>=nI) kI = 0
titLe(kI)
P02i.src = IMGSRC[kI].src
P1i.src = IMGSRC[kI].src
for (var i=1i<=20i++) setTimeout("TPR_("+i+")", i*32)
} else setTimeout("TPR()", 100)
}
function TPL__(p) {
P2.style.width = (2.5*p)+"%"
setOpacity(P2i, .5*p*p)
if (p == 20) run = false
}
function TPL_(p) {
P1.style.left = (2.5*p)+"%"
P1.style.width = 40+(10-2.5*p)+"%"
setOpacity(P1i, 100-.5*(p*p))
if (p == 20) {
P1i.src = IMGSRC[kI].src
setOpacity(P1i, 100)
P1.style.left = 0
P1.style.width = "50%"
for(var i=1i<=20i++) setTimeout("TPL__("+i+")", i*32)
}
}
function TPL() {
if (!run) {
run = true
P02i.src = IMGSRC[kI].src
P2.style.width = 0
kI--
if (kI <0) kI = nI-1
titLe(kI)
P01i.src = IMGSRC[kI].src
P2i.src = IMGSRC[kI].src
for(var i=1i<=20i++) setTimeout("TPL_("+i+")", i*32)
} else setTimeout("TPL()", 100)
}
function titLe(p) {
document.getElementById("TXTBOX").innerHTML = IMGSRC[p].alt
}
onload = function() {
IMGSRC = document.getElementById("imgsrc").getElementsByTagName("img")
DB = document.getElementById("DHTMLBOOK")
P01 = DB.getElementsByTagName("span")[0]
P01i= P01.getElementsByTagName("img")[0]
P02 = DB.getElementsByTagName("span")[1]
P02i= P02.getElementsByTagName("img")[0]
P1 = DB.getElementsByTagName("span")[2]
P1i = P1.getElementsByTagName("img")[0]
P2 = DB.getElementsByTagName("span")[3]
P2i = P2.getElementsByTagName("img")[0]
nI = IMGSRC.length
P1i.src = IMGSRC[kI].src
P2i.src = IMGSRC[kI].src
titLe(kI)
DB.style.visibility = "visible"
}
//-->
</SCRIPT>
<META content="MSHTML 6.00.6000.16809" name=GENERATOR></HEAD>
<BODY>
<DIV id=center>
<DIV id=DHTMLBOOK><SPAN class=page onMouseDown="return false" ondblclick=TPL()onclick=TPL()><IMG class=img></SPAN>
<SPAN class="page right" onmousedown="return false" ondblclick=TPR()onclick=TPR()><IMG class=img style="LEFT: -100%"></SPAN>
<SPAN class="page turn" onMouseDown="return false" ondblclick=TPL()onclick=TPL()><IMG class=img style="FILTER: alpha()opacity: 1"></SPAN>
<SPAN class="page turn right" onmousedown="return false" ondblclick=TPR()onclick=TPR()><IMG class=img style="FILTER: alpha()LEFT: -100%opacity: 1"></SPAN>
<DIV id=TXTBOX></DIV></DIV></DIV>
<DIV id=imgsrc style="VISIBILITY: hidden">
<IMG alt="In the early morning he departed." src="http://www.lanrentuku.com/down/js/images/12499727220.jpg">
<IMG alt="Believing she had dreamed of the roar of his bike," src="http://www.lanrentuku.com/down/js/images/12499727221.jpg">
<IMG alt="she woke up to the sunshine in her eyelids." src="http://www.lanrentuku.com/down/js/images/12499727222.jpg">
</DIV>
</BODY></HTML>
这个函数是求如图蓝线的长度 黑色是当前窗口 绿色是hover的元素
function move( ev , bool) {
var top = $(this).offset().top
var bottom = top + $(this).height()
var left = $(this).offset().left
var right = left + $(this).width()
这个函数是求相对于当前页面 hover元素的四条边的距离
然后计算
var sT = Math.abs(y - top), //鼠标位置到hover元素顶部的距离
sB = Math.abs(y - bottom), //底部
sL = Math.abs(x - left), //左边
sR = Math.abs(x - right) //右边
var a = Math.min( sT , sB , sL , sR ) //然后在这4个距离里面选出最小值 变量a 就是距离最短的值