原生JS实现图片翻书效果

发布时间 - 2026-01-10 23:05:29    点击率:

下面给大家分享基于原生js实现的图片翻书效果,具体代码如下所示:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  <title>JS实现图片翻书效果-懒人图库</title>
  <META http-equiv=imagetoolbar content=no>
  <STYLE type=text/css>
    #center {
      LEFT: 50%; POSITION: absolute; TOP: 50%
    }
    #DHTMLBOOK {
      BACKGROUND: #000; LEFT: -210px; VISIBILITY: hidden; WIDTH: 420px; POSITION: relative; TOP: -160px; HEIGHT: 320px
    }
    #TXTBOX {
      FONT-SIZE: 0.8em; WIDTH: 410px; COLOR: #aba193; FONT-FAMILY: verdana; POSITION: absolute; TOP: 320px; TEXT-ALIGN: center
    }
    .page {
      OVERFLOW: hidden; BORDER-LEFT: #000000 1px solid; WIDTH: 50%; CURSOR: pointer; POSITION: absolute; HEIGHT: 100%
    }
    .right {
      BORDER-RIGHT: #000000 1px solid; LEFT: 50%
    }
    .turn {
      BACKGROUND: #000000
    }
    .img {
      WIDTH: 200%; POSITION: absolute; HEIGHT: 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=0; else if (o>100) o = 100;
    if (obj.filters)obj.filters.alpha.opacity=o; else 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) {
    debugger
    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=1; i<=20; i++) 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=1; i<=20; i++) 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=1; i<=20; i++) 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=1; i<=20; i++) setTimeout("TPL_("+i+")", i*32);
    } else setTimeout("TPL()", 100);
  }
  function titLe(p) {
    document.getElementById("TXTBOX").innerHTML = IMGSRC[p].alt;
  }
  onload = function() {
    debugger
    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>

以上所述是小编给大家介绍的原生JS实现图片翻书效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# js实现翻书效果  # turn.js异步加载实现翻书效果  # 基于JS实现翻书效果的页面切换样式  # 基于Turn.js 实现翻书效果实例解析  # 移动端H5开发 Turn.js实现很棒的翻书效果  # 基于javascript html5实现3D翻书特效  # js图片翻书效果代码分享  # JS实现图片翻书效果示例代码  # JQuery Dialog(JS 模态窗口  # 可拖拽的DIV)  # js实现拖拽效果  # 原生JS实现翻书特效  # 翻书  # 给大家  # 小编  # 在此  # 所示  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # FONT  # SIZE  # TXTBOX  # COLOR  # em  # HEIGHT  # px  # VISIBILITY  # hidden  # relative 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在云指建站中生成FTP站点?  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  Laravel Eloquent访问器与修改器是什么_Laravel Accessors & Mutators数据处理技巧  如何用美橙互联一键搭建多站合一网站?  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel项目怎么部署到Linux_Laravel Nginx配置详解  创业网站制作流程,创业网站可靠吗?  Laravel Fortify是什么,和Jetstream有什么关系  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何挑选优质建站一级代理提升网站排名?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  详解CentOS6.5 安装 MySQL5.1.71的方法  网站制作价目表怎么做,珍爱网婚介费用多少?  在Oracle关闭情况下如何修改spfile的参数  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  bootstrap日历插件datetimepicker使用方法  js实现点击每个li节点,都弹出其文本值及修改  Python结构化数据采集_字段抽取解析【教程】  如何在景安服务器上快速搭建个人网站?  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  如何基于云服务器快速搭建个人网站?  Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  Laravel如何使用Passport实现OAuth2?(完整配置步骤)  LinuxCD持续部署教程_自动发布与回滚机制  焦点电影公司作品,电影焦点结局是什么?  如何破解联通资金短缺导致的基站建设难题?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  如何快速搭建高效简练网站?  如何在Tomcat中配置并部署网站项目?  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  如何实现建站之星域名转发设置?  百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏  使用Dockerfile构建java web环境  个人网站制作流程图片大全,个人网站如何注销?  Laravel如何创建自定义中间件?(Middleware代码示例)  html5audio标签播放结束怎么触发事件_onended回调方法【教程】  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Swift中swift中的switch 语句  手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?  Laravel怎么生成URL_Laravel路由命名与URL生成函数详解