您的位置:首页 > 编程语言

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

2015-04-28 14:14 225 查看
使用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"> </a>

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

<a id="broker2" name="broker2"> </a>

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

<a id="broker3" name="broker3"> </a>

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

<a id="broker4" name="broker4"> </a>

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

<a id="broker5" name="broker5"> </a>

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

<a id="broker6" name="broker6"> </a>

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

<a id="broker7" name="broker7"> </a>

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

<a id="broker8" name="broker8"> </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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: