jq实现楼层切换效果
<!DOCTYPE html>
<html>
<head>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
} a {
color: #000;
text-decoration: none;
} .list {
display: none;
width: 50px;
position: fixed;
height: 150px;
left: 0;
top: 50%;
margin-top: -75px;
} ul {
list-style: none;
border: 1px solid #ccc;
} li {
height: 50px;
line-height: 50px;
} li a {
display: block;
width: 100%;
height: 100%
} .n2 {
border: 1px solid #ccc;
border-left: 0;
border-right: 0
} li.active a {
background-color: green;
color: #fff;
} .long {
width: 500px;
height: 800px;
} .con {
margin-left: 300px;
} .floor {
height: 500px;
width: 500px;
background: red;
} .floor span {
display: block;
width: 100%;
height: 50px;
line-height: 50px; font-size: 25px;
/*animation:scaleDisc 1s;*/
} @-webkit-keyframes scaleDisc {
0% {
opacity: 0;
height: 0
}
100% {
opacity: 1;
height: 50px
}
} @-moz-keyframes scaleDisc {
0% {
opacity: 0;
height: 0
}
100% {
opacity: 1;
height: 50px
}
} @keyframes scaleDisc {
0% {
opacity: 0;
height: 0
}
100% {
opacity: 1;
height: 50px
}
}
</style>
<meta charset="utf-8">
<title>楼层效果</title>
</head>
<body>
<div class="list">
<ul>
<li><a href="#floor1" class="smooth">楼层1</a></li>
<li class="n2"><a href="#floor2" class="smooth">楼层2</a></li>
<li><a href="#floor3" class="smooth">楼层3</a></li>
</ul>
</div>
<div class="long">
内容区
</div>
<div class="con">
<div class="long1 floor" id="floor1">
<span>楼层1</span>
</div>
<div class="long2 floor" id="floor2">
<span>楼层2</span>
</div>
<div class="long3 floor" id="floor3">
<span>楼层3</span>
</div>
</div>
</body>
<script src="jquery-1.11.3.min.js"></script>
<script>
$(function () {
$(window).scroll(function () {
var clientH = $(window).height();
var $scroll = $(window).scrollTop();
//判断当楼层内容区域显示在可视窗口时,显示楼层列表,否则隐藏
if($(".con").offset().top-$scroll<clientH){
$(".list").css("display","block");
}else{
$(".list").css("display","none");
}
$(".floor").each(function () {
/*var clientH = window.screen.availHeight;*/
var $height = $(this).height();
var $off = $(this).offset().top;
var $index = $(this).index();
/*if ($off + $height - $scroll >$height && $off + $height - $scroll <= clientH) {*/
if ($off - $scroll < clientH/2) {
$(this).css("background","green");
$(this).siblings().css("background","red");
$(".list li").eq($index).addClass("active");
$(".list li").eq($index).siblings().removeClass("active");
} else {
$(this).css("background", "red");
$(".list li").eq($index).removeClass("active");
} }) });
$(".smooth").on("click", function () {
var href = $(this).attr("href");
var $step = $(href).offset().top;
$("body").animate({"scrollTop": $step}, 500);
return false;
})
})
</script>
</html>
效果说明:
1)当楼层内容没有显示在可视区域时,隐藏楼层列表,否则显示
2)当楼层内容距离屏幕顶端距离小于屏幕可视高度的一半时,给当前楼层设置为绿色背景
3)点击楼层列表时,跳转到对应的楼层内容
jq实现楼层切换效果的更多相关文章
- tab切换的效果——仿照今日头条APP的切换效果
说点废话;不知道是哪一版本起头条的tab切换效果就变了,一直琢磨着这个事,去度娘那里也没有什么结果:正好这两天有空就尝试做了一下:用前端的技术来实现: 先看效果吧:上面的tab随着slide滑动,上面 ...
- weui 多网页切换效果分析
weui的文档写的不怎么详尽,简单的来讲WeUI 为微信 Web 服务量身设计的h5框架. WeUI是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户 ...
- 使用ViewPager+Fragment实现选项卡切换效果
实现效果 本实例主要实现用ViewPage和Fragment实现选项卡切换效果,选项卡个数为3个,点击选项卡或滑动屏幕会切换Fragment并实现选项卡下方下边框条跟随移动效果. 本程序用androi ...
- js鼠标滚轮滚动图片切换效果
效果体验网址:http://keleyi.com/keleyi/phtml/image/12.htm HTML文件代码: <!DOCTYPE html PUBLIC "-//W3C// ...
- jQuery手机端触摸卡片切换效果
效果:http://hovertree.com/code/run/jquery/a1gr3gm9.html 可以用手机查看效果. 代码如下: <!doctype html> <htm ...
- javascript马赛克遮罩图片切换效果:XMosaic.js(转)
新鲜出炉的javascript图片切换特效,实现的是马赛克遮罩切换.在flash里,好实现遮罩动画很简单,不过JS实现起来就有些困难了. XMosaic.js,与XScroll.js和XScroll2 ...
- CSS3 :target伪类实现Tab切换效果
用:target伪类实现Tab切换效果真的非常简单!简单到什么程度呢?它只需要下面这些代码. style.css: .song-info { position: absolute; backgroun ...
- 精致3D图片切换效果,最适合企业产品展示
这是一个精致的立体图片切换效果,特别适合企业产品展示,可立即用于实际项目中.支持导航和自动播放功能, 基于 CSS3 实现,推荐使用最新的 Chrome,Firefox 和 Safari 浏览器浏览效 ...
- Midnight.js – 实现奇妙的固定头部切换效果
Midnight.js 是一款 jQuery 插件,在页面滚动的时候实现多个头设计之间的切换,所以你总是有一个头与它下面的内容层叠,看起来效果很不错. Midnight.js 可以让你轻松实现这种切换 ...
随机推荐
- MySQL PLSQL Demo - 005.IF THEN ELSEIF THEN ELSE END IF
drop procedure if exists p_hello_world; create procedure p_hello_world(in v_id int) begin ) then sel ...
- 最大似然估计(MLE)与最小二乘估计(LSE)的区别
最大似然估计与最小二乘估计的区别 标签(空格分隔): 概率论与数理统计 最小二乘估计 对于最小二乘估计来说,最合理的参数估计量应该使得模型能最好地拟合样本数据,也就是估计值与观测值之差的平方和最小. ...
- 用t4模板和head.js进行css和js的版本控制
head.js 介绍 http://headjs.com/site/api/v1.00.html#load 原文http://www.cnblogs.com/wang2650/p/5102690.h ...
- JS——时间日期控件
原文:http://blog.sina.com.cn/s/blog_621768f30100qmfz.html 今天找到一个还不错的日历控件 下载地址:http://www.my97.net/dp/d ...
- 慎重别选择到"僵尸"软件
何谓僵尸? 没有灵魂,动作单一,我们电视电影上经常看见, 只能往前跳,不会走路, 手向前伸直,左右摆攻击. 何谓"僵尸"软件? 根据僵尸的特性,大概有如下几类: 1.没有任何创新性 ...
- iOS - OC RunTime 运行时
1.运行时的使用 向分类中添加属性 // 包含运行时头文件 #import <objc/runtime.h> /* void objc_setAssociatedObject(id obj ...
- iOS - UIView
前言 NS_CLASS_AVAILABLE_IOS(2_0) @interface UIView : UIResponder <NSCoding, UIAppearance, UIAppeara ...
- XP_版本
1. Windows XP sp3 cd 和Windows XP sp3 cd vl的区别?VL的意思是大客户版,就是使用VL的KEY安装的系统是不需要激活的,不带VL的是安装完后需要激活的零售版 2 ...
- parseInt 的第二个参数
["1","2","3"].map(parseInt) //[1,NaN,NaN] ["1","2" ...
- HDU4801·二阶魔方
题意:给定二阶魔方初始状态,问N(1 <= N <= 7)步旋转操作以内最多能使几个面相同. dfs搜索+剪枝. 魔方的每个旋转操作即对应于一个置换操作.又因为相对运动,上层左旋一次和下层 ...