在iframe子页面中添加导航功能代码

使用iframe嵌套页面,并在页面中添加导航功能,iframe只适应高度

效果图如下图

主页面

<div class="date_app" id="postRightContent" style="height: 725px; margin-bottom: 30px;">

<iframe id="rightIframePage" name="rightIframePage" scrolling="no"

onLoad="iFrameHeights();" width="100%;" frameborder="0"

src="/a.jsp">

</iframe>

</div>

主页面js

//让iframe只适应高度

function iFrameHeights() {

var ifm = document.getElementById("rightIframePage");

ifm.height = 0;

var subWeb = document.frames ? document.frames["rightIframePage"].document : ifm.contentDocument;

if (ifm != null && subWeb != null) {

ifm.height = subWeb.body.scrollHeight;

ifm.parentElement.style.height = subWeb.body.scrollHeight + "px";

}

}

iframe页面a.jsp

<link rel="stylesheet" type="text/css" href="/css/titleNavigation.css">

<div style="width: 800px; margin: auto;">

<a id="broker1" name="broker1">&nbsp;</a>

<div id="brokerZoneReport" style="min-width: 500px; height: 300px; margin: 10px auto;"></div>

<a id="broker2" name="broker2">&nbsp;</a>

<div id="brokerDistrictReport" style="min-width: 500px; height: 300px; margin: 10px auto"></div>

<a id="broker3" name="broker3">&nbsp;</a>

<div id="brokerCareerReport" style="min-width: 500px; height: 300px; margin: 10px auto;"></div>

<a id="broker4" name="broker4">&nbsp;</a>

<div id="brokerCompanyReport" style="min-width: 500px; height: 300px; margin: 10px auto"></div>

<a id="broker5" name="broker5">&nbsp;</a>

<div id="brokerNumberOfListingsReport" style="min-width: 500px; height: 300px; margin: 10px auto;"></div>

<a id="broker6" name="broker6">&nbsp;</a>

<div id="brokerAccreditationReport" style="min-width: 500px; height: 300px; margin: 10px auto"></div>

<a id="broker7" name="broker7">&nbsp;</a>

<div id="brokerNumberOfTransactionsReport" style="min-width: 500px; height: 300px; margin: 10px auto;"></div>

<a id="broker8" name="broker8">&nbsp;</a>

<div id="brokerGenderReport" style="min-width: 500px; height: 300px; margin: 10px auto"></div>

</div>

<div id="sideToolbar" class="sideToolbar">

<div id="sideCatalog" class="sideCatalogBg"

style="visibility: visible;">

<div id="sideCatalog-sidebar">

<div class="sideCatalog-sidebar-top"></div>

<div class="sideCatalog-sidebar-bottom"></div>

</div>

<div id="sideCatalog-updown" style="visibility: hidden;">

<div id="sideCatalog-up" class="sideCatalog-up-enable" title="向上翻页"></div>

<div id="sideCatalog-down" class="sideCatalog-down-enable"

title="向下翻页"></div>

</div>

<div id="sideCatalog-catalog">

<dl style="width: 175px; zoom: 1">

<dd class="sideCatalog-item1 highlight" id="sideToolbar-item-0-1">

<span class="sideCatalog-index1">1</span>

<a id="sideToolbar-item-a-1" href="javascript:void(0);" class="nslog:1026" title="城区报表">城区报表</a>

<span class="sideCatalog-dot"></span>

</dd>

<dd class="sideCatalog-item1" id="sideToolbar-item-0-2">

<span class="sideCatalog-index1">2</span>

<a id="sideToolbar-item-a-2" href="javascript:void(0);" class="nslog:1026" title="片区报表">片区报表</a>

<span class="sideCatalog-dot"></span>

</dd>

<dd class="sideCatalog-item1" id="sideToolbar-item-0-3">

<span class="sideCatalog-index1">3</span>

<a id="sideToolbar-item-a-3" href="javascript:void(0);" class="nslog:1026" title="职业特长报表">职业特长报表</a>

<span class="sideCatalog-dot"></span>

</dd>

<dd class="sideCatalog-item1" id="sideToolbar-item-0-4">

<span class="sideCatalog-index1">4</span>

<a id="sideToolbar-item-a-4" href="javascript:void(0);" class="nslog:1026" title="公司报表">公司报表</a>

<span class="sideCatalog-dot"></span>

</dd>

<dd class="sideCatalog-item1" id="sideToolbar-item-0-5">

<span class="sideCatalog-index1">5</span>

<a id="sideToolbar-item-a-5" href="javascript:void(0);" class="nslog:1026" title="房源数报表">房源数报表</a>

<span class="sideCatalog-dot"></span>

</dd>

<dd class="sideCatalog-item1" id="sideToolbar-item-0-6">

<span class="sideCatalog-index1">6</span>

<a id="sideToolbar-item-a-6" href="javascript:void(0);" class="nslog:1026" title="资格认证报表">资格认证报表</a>

<span class="sideCatalog-dot"></span>

</dd>

<dd class="sideCatalog-item1" id="sideToolbar-item-0-7">

<span class="sideCatalog-index1">7</span>

<a id="sideToolbar-item-a-7" href="javascript:void(0);" class="nslog:1026" title="成交数报表">成交数报表</a>

<span class="sideCatalog-dot"></span>

</dd>

<dd class="sideCatalog-item1" id="sideToolbar-item-0-8">

<span class="sideCatalog-index1">8</span>

<a id="sideToolbar-item-a-8" href="javascript:void(0);" class="nslog:1026" title="性别报表">性别报表</a>

<span class="sideCatalog-dot"></span>

</dd>

<!--

<dd class="sideCatalog-item2" id="sideToolbar-item-0-5_1">

<span class="sideCatalog-index2">8.1</span><a href="#5_1"

class="nslog:1026" title="资格认证报表" onclick="return false;">资格认证报表</a><span

class="sideCatalog-dot"></span>

</dd>

<dd class="sideCatalog-item2" id="sideToolbar-item-0-5_2">

<span class="sideCatalog-index2">8.2</span><a href="#5_2"

class="nslog:1026" title="成交数报表" onclick="return false;">成交数报表</a><span

class="sideCatalog-dot"></span>

</dd>

-->

</dl>

</div>

</div>

<a id="sideCatalogBtn" href="javascript:void(0);" style="visibility: visible;" class=""></a>

<a id="sideToolbar-up" href="javascript:void(0)" style="visibility: visible;" title="回到顶部"></a>

</div>

导航js 代码

$(document).ready(function() {

//让iframe回到顶部

parent.scrollTo(0,0);

initTitleNavigationEvent("broker");

// 主页面滚动时,模仿position: fixed;这种功能,因为position: fixed;对于iframe子页面来说不起作用

$(parent.window).scroll(function() {

$(‘#sideToolbar‘).css({

top : $(parent.window).scrollTop() + 116

});

// 滚动父页面滚动条时相应的切换导航位置,即让导航跟随页面滚动

scrollNavlWithHtmlScroll("broker");

});

});

/**

* 初始化事件

*/

function initTitleNavigationEvent(name){

// 添加单击事件

$("#sideCatalog-catalog dl dd a").bind(‘click‘,{name : name}, function(e) {

var id = e.target.id.substring(e.target.id.lastIndexOf("-") + 1, e.target.id.length);

quickPositioning(e.data.name + id);

$("#sideCatalog-catalog dl dd").removeClass("highlight");

$(this).parent().addClass("highlight");

});

// 滚动到顶部

$("#sideToolbar-up").bind(‘click‘, function(e) {

parent.scrollTo(0,0);

});

// 显示或隐藏导航

$("#sideCatalogBtn").bind(‘click‘, function(e) {

if ($(this).hasClass(‘sideCatalogBtnDisable‘)) {

$("#sideCatalog-sidebar").show();

$("#sideCatalog-updown").show();

$("#sideCatalog-catalog").show();

$("#sideCatalogBtn").removeClass("sideCatalogBtnDisable");

} else {

$("#sideCatalog-sidebar").hide();

$("#sideCatalog-updown").hide();

$("#sideCatalog-catalog").hide();

$("#sideCatalogBtn").addClass("sideCatalogBtnDisable");

}

});

}

/**

* 滚动到指定位置

* @param id 位置id

*/

function quickPositioning(id){

document.getElementById(id).scrollIntoView();

}

/**

* 导航跟随页面滚动

*/

function scrollNavlWithHtmlScroll(name){

// 滚动条距离顶端值

var wst = $(parent.window).scrollTop();

// 加循环

for (var i = 1; i <= 8; i++) {

// 判断滚动条位置

if ($("#" + name + i).offset().top <= wst) {

// 清除高亮

$(‘#sideCatalog-catalog dl dd‘).removeClass("highlight");

// 给当前导航加高亮

$("#sideToolbar-item-0-" + i).addClass("highlight");

} else {

break;

}

}

}

css文件 titleNavigation.css

.sideToolbar {

display: block;

position: fixed;

top: 117px;

left: 970px;

}

#sideCatalog {

width: 190px;

height: 355px;

overflow: hidden;

margin-bottom: 10px;

font-size: 14px;

font-family: 宋体;

line-height: 19px;

position: relative;

zoom: 1;

left: 10px;

}

#sideCatalogBtn {

width: 45px;

height: 45px;

display: block;

background: transparent url(/images/img/sideToolbar.gif) 0 0

no-repeat;

cursor: pointer;

margin-bottom: 5px;

position: relative;

margin-left: 10px;

display: block;

}

.sideCatalogBtnDisable {

background: transparent url(/images/img/sideToolbar.gif)

-104px 0 no-repeat !important;

}

a:focus {

outline: 0;

}

a:visited {

color: #136ec2;

}

a:hover {

text-decoration: underline;

}

#sideToolbar-up {

display: block;

width: 45px;

height: 45px;

margin-left: 10px;

border-radius: 2px;

-moz-border-radius: 2px;

-webkit-border-radius: 2px;

background: transparent url(/images/img/sideToolbar.gif)

-1px -62px no-repeat;

}

#sideCatalog #sideCatalog-sidebar {

top: 0;

width: 0;

height: 353px;

background-color: #eaeaea;

border: 1px solid #eaeaea;

border-top: 0;

border-bottom: 0;

position: absolute;

left: 5px;

}

#sideCatalog #sideCatalog-sidebar .sideCatalog-sidebar-top {

top: 0;

cursor: pointer;

}

#sideCatalog #sideCatalog-sidebar .sideCatalog-sidebar-top,#sideCatalog #sideCatalog-sidebar .sideCatalog-sidebar-bottom

{

position: absolute;

left: -5px;

width: 10px;

height: 10px;

background: transparent url(/images/img/sideToolbar.gif) 0

-199px no-repeat;

zoom: 1;

overflow: hidden;

}

#sideCatalog #sideCatalog-sidebar .sideCatalog-sidebar-bottom {

bottom: 0;

}

#sideCatalog #sideCatalog-sidebar .sideCatalog-sidebar-top,#sideCatalog #sideCatalog-sidebar .sideCatalog-sidebar-bottom

{

position: absolute;

left: -5px;

width: 10px;

height: 10px;

background: transparent url(/images/img/sideToolbar.gif) 0

-199px no-repeat;

zoom: 1;

overflow: hidden;

}

#sideCatalog-updown {

position: absolute;

width: 22px;

height: 50px;

right: 60px;

bottom: 160px;

z-index: 100;

}

#sideCatalog-up {

width: 25px;

height: 25px;

cursor: pointer;

}

.sideCatalog-up-enable {

background: transparent url(/images/img/sideToolbar.gif)

-245px -83px no-repeat;

}

#sideCatalog-down {

width: 25px;

height: 25px;

cursor: pointer;

}

.sideCatalog-down-enable {

background: transparent url(/images/img/sideToolbar.gif)

-245px -108px no-repeat;

}

#sideCatalog-catalog {

height: 325px;

padding-left: 23px;

overflow: hidden;

margin-top: 18px;

position: relative;

}

#sideCatalog-catalog dl {

position: relative;

}

body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td

{

margin: 0;

padding: 0;

}

.sideCatalog-item1,.sideCatalog-item2 {

position: relative;

padding: 0 7px;

zoom: 1;

margin: 0 0 6px 0;

}

#sideCatalog .highlight span.sideCatalog-dot {

height: 13px;

width: 18px;

background: transparent url(/images/img/sideToolbar.gif)

-271px -38px no-repeat;

left: -23px;

top: 3px;

}

.sideCatalog-item2 {

padding-left: 21px;

}

#sideCatalog span.sideCatalog-index1 {

color: #999;

font-weight: bold;

font-family: Arial;

font-size: 14px;

padding-right: 5px;

}

#sideCatalog .sideCatalog-item1 a {

color: #555;

font-weight: bold;

}

#sideCatalog .sideCatalog-item1 a,#sideCatalog .sideCatalog-item2 a {

text-decoration: none;

}

.sideCatalog-dot:hover {

background-position: 0 -245px;

}

.sideCatalog-dot {

position: absolute;

height: 10px;

width: 6px;

font-size: 12px;

line-height: 12px;

background: transparent url(/images/img/sideToolbar.gif) 0

-222px;

left: -20px;

top: 4px;

cursor: pointer;

overflow: hidden;

}

#sideCatalog span.sideCatalog-index2 {

color: #999;

font-family: Arail;

font-size: 14px;

padding-right: 5px;

}

#sideCatalog .sideCatalog-item2 a {

color: #666;

}

.sideCatalog-item2 .sideCatalog-dot {

background: 0;

}

时间: 2024-10-25 17:33:29

在iframe子页面中添加导航功能代码的相关文章

iframe子页面js调用父页面js函数/父页面调用Iframe子页面中js方法

1.假设当前页面为a.html, iframe的src页面为b.html,其代码如下: 1 <span class="tag"><html> 2 <br></span><span class="tag"><head> 3 <br></span><span class="tag"><title></span><s

在iframe子页面中获取并操作父级页面的对象/元素

//获取iframe的window对象 // var gbiframe = window.top.document.getElementById("gbiframe").contentWindow; // 通过获取到的window对象操作HTML元素,这和普通页面一样 // var val = gbiframe.document.getElementById("gbaddr").value; // alert(val); 只有FF能使用

CRM 2016 执行IFrame 子页面中函数

CRM代码: var iframe = Xrm.Page.getControl("IFRAME_xxx").getObject(); iframe.contentWindow.RefreshSelf(); IFrame 代码: var RefreshSelf = function() { // do something } 原文地址:https://www.cnblogs.com/BinBinGo/p/9887266.html

jQuery操作iframe子页中元素代码实例

jQuery操作iframe子页中元素代码实例:本章节介绍一下如何在父页面中操作iframe子页面中的元素,希望能够给需要的朋友带来一定的帮助.一.父页面代码: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <

父子页面之间元素相互操作(iframe子页面)

js/jquery获取iframe子页面中元素的方法: 一.使用window.frames["iframe的ID"]获取元素 window.onload = function() { var oIframe = window.frames["oIframe"].document.getElementById("getFrame"); console.log(oIframe); } 注意:此处一定要加上window.onload或者DOMConte

iframe子页面内刷新父页面中另一个iframe子页面

框架页面如下: <div id="aa" style="float: left; height: 500px; border-right-style: solid; border-right-color: #CCCCFF; border-right-width: 2px;"> <IFRAME id="tree" name="tree" src="/ScienProjectWeb/commonjsp/

系统管理模块_部门管理_改进_抽取添加与修改JSP页面中的公共代码_在显示层抽取BaseAction_合并Service层与Dao层

系统管理模块_部门管理_改进1:抽取添加与修改JSP页面中的公共代码 commons.jspf <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <meta http-equiv="Conten

iframe子页面position的fixed

前言: 首先说一说我昨天天的苦逼经历.中午吃饭时一同事跟我说,他做的项目嵌套iframe后,子页面的position设置fixed失效了. 经过反复询问,得知他用了两层iframe,再加上最外的父页面,一共就是三层. 下午就其iframe子页面固定定位问题进行处理,上网找了各种解决方案:插件.js模拟等效果均不理想.页面不是代码过多就是效果卡顿.跳动(附:博主的同事架构的页面是用于手机微信端,部分PC端的优秀代码并不适用,非代码不行).无奈之下只得另想出路,最终功能完美实现,现拿出来与大家共享.

转 easyUI的iframe子页面操作父页面元素

曾经试过这样的方法 在iframe子页面获取父页面元素      代码如下:      $('#objId', parent.document); 这样可以获得父页面的元素,但是调用EasyUI的方法的时候,就会报错. 郁闷了很久很久,最终找到方案,写法的区别,如下: parent.$('#objId') 这样调用方法就不会报错 如: parent.$('#objId').tabs("add", { title: title,      content: content,      c