jquery网页向导插件可自动滚动页面步骤引导操作



177 705 236



特效描述:网页向导插件 自动滚动 页面步骤引导,

代码结构

1. 引入CSS

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

2. 引入JS

<script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="js/jquery.easing.1.3.js"></script>

3. HTML代码

<div class="wrapper">
	<h1>jquery 网站功能介绍向导插件</h1>
	<h2 class="tour_7">增强社交、论坛、商城用户友好性,js/jQuery向导实例</h2>
	<div class="content">
		<p><strong>这是一个使用jquery写的网站功能向导的例子,点击开始向导,会看到这个向导如何工作,以及你可以嵌入到你自己的网站中去。</strong></p>
		<div class="box left">
			<h2 class="tour_1">创建一个向导</h2>
			<p>无数个阳光和熙的下午,好奋斗的同学已在一桌一椅之间树起一座惊奇的雕像。他们手中的毛像刀像剑一样锋利无比,他们脸上的笑容宛如初春的花一样艳美有余,他们心中的志向比天还高,比海更深……</p>
			<p>&nbsp;</p>
			<p>——这才是青春真正的意义。</p>
		</div>
		<div class="box right">
			<h2 class="tour_2">创建一个向导标记</h2>
			<p>以前,是不顾一切地去顾及一切,现在是决定了不顾一切地去顾及一切。当我在川流不息的人群中忽然抬起头时,感到头发被风吹乱并深深地掩埋了我的眼睛。单薄的衣服丝丝透着寒冷,笑容开始悲凉并且含蓄……我站在了一个预知终点和另一个不预知的起点之上。</p>
			<p>我觉得自己像个年轻的公主,穿着华美的袍,站在悬崖上歌泣。灵魂游离不定。辗转中的快乐在百转千回中碎成一地琉璃。</p>
		</div>
		<div class="box left">
			<h2 class="tour_3">利用这些标记来让向导行走</h2>
			<p>曾在一本杂志上看过这样一段话:“在歌舞升平的和平年代,青春在一代又一代人中老去,又在一代又一代人中成长。回望起来,不止华衣与爱情,不止学习与时尚,不止鲜血与革命,不止奋斗与理想,不止英雄与奉献。”</p>
			<p>无数个晨曦微露的清晨,爱学习的同学已在凛冽的风里站成一道惊叹的风景。他们拿书的手比躲在被窝里的更有力更有劲,他们迎风的脸比盖在被窝下的更黝黑更健康,他们跳动的心比葬在被窝下的更激昂更活跃……</p>
		</div>
		<div class="box right">
			<h2 class="tour_4">还可以自动播放向导</h2>
			<p>正如夏伽斯说的那样:“我们总是在一条青春的河里孤独地跋涉,当有那么一天我们突然想看看来时的路走过的路时,却发现当我们回头张望的时候,更多的青春又从我们身边无声无息地流走了。”</p>
			<p>我们的青春已在被窝里被埋葬了一半,是该与被窝道别的时候了。因为我们被岁月冠以了一个温暖如花开的名字――年轻人。所以哪怕是忧伤得泪流满面,青春依然是一道夹着摇滚味道的安魂曲。我们还没有到只剩下回忆的年龄,我们还能把快乐写得源远流长。</p>
		</div>
		<div class="clear"></div>
		<h2>在你的页面中自定义参数</h2>
		<p>新旧交替的间隙之中听见一月的风飞舞成凌乱的青春,以及南方冬天的夜里无比肃杀和凄戚的雨,打湿了依偎的”窝”。常常就在这种时候有时光飞回流转的错觉,心疼得让我想落泪,为埋葬在被窝里的青春哭泣一场。</p>
		<p>每次闹钟的声音在安祥的空间响起时,都觉得无比刺耳,恨不得抓起它就往外面扔,然后继续裹在被窝里做美梦。于是猛然发现从小学到现在我们嘴里常念的“毅力”就这样不堪一击,粉碎在诡异的天空下,散落一地的悲哀。</p>
		<div class="box left">
			<h2 class="tour_5">还可以选择提示栏的方向。这更有利于向导</h2>
			<p>在明白的瞬间,天空出现绝美的云霞。而风却一直留在那里,厮守着我疼痛的记忆惊慌挤出的一滴眼泪,花朵一样摇曳着。</p>
			<p>于是我开始学着去追悼那些明明灭灭的回忆中的风景,以及那些晃晃忽忽的消逝的青春,并试图为它们重新安葬一次,树一尊华丽的墓碑,以纪念我的一切失去。是的,我失去了太多,多得睁开双眼尽是触目的  。</p>
		</div>
		<div class="box right">
			<h2 class="tour_6">提示栏还支持自定义颜色</h2>
			<p>以前,是不顾一切地去顾及一切,现在是决定了不顾一切地去顾及一切。当我在川流不息的人群中忽然抬起头时,感到头发被风吹乱并深深地掩埋了我的眼睛。单薄的衣服丝丝透着寒冷,笑容开始悲凉并且含蓄……我站在了一个预知终点和另一个不预知的起点之上。</p>
			<p> 我们的青春已在被窝里被埋葬了一半,是该与被窝道别的时候了。因为我们被岁月冠以了一个温暖如花开的名字――年轻人。所以哪怕是忧伤得泪流满面,青春依然是一道夹着摇滚味道的安魂曲。我们还没有到只剩下回忆的年龄,我们还能把快乐写得源远流长。</p>
		</div>
		<div class="clear"></div>
	</div>
</div>
<!-- The JavaScript -->
<script type="text/javascript">
$(function(){
	/*
	参数:
	name: 提示栏的指定位置
	bgcolor: 向导提示栏的背景颜色
	color: 向导提示栏的文字颜色
	text: 向导提示栏的文字
	time: 如果启用自动播放,则是每个向导的停留时间
	position: 向导提示栏的位置,(相对于name的位置)
		TL	top left
		TR  top right
		BL  bottom left
		BR  bottom right
		LT  left top
		LB  left bottom
		RT  right top
		RB  right bottom
		T   top
		R   right
		B   bottom
		L   left
	 */
	var config = [
		{
			"name" 		: "tour_1",
			"bgcolor"	: "black",
			"color"		: "white",
			"position"	: "TL",
			"text"		: "你可以在你的应用中创建一个向导实例",
			"time" 		: 5000
		},
		{
			"name" 		: "tour_2",
			"bgcolor"	: "black",
			"color"		: "white",
			"text"		: "每一步骤命名一个class",
			"position"	: "BL",
			"time" 		: 5000
		},
		{
			"name" 		: "tour_3",
			"bgcolor"	: "black",
			"color"		: "white",
			"text"		: "然后自定义导航文字",
			"position"	: "BL",
			"time" 		: 5000
		},
		{
			"name" 		: "tour_4",
			"bgcolor"	: "black",
			"color"		: "white",
			"text"		: "你还可以让向导自动播放",
			"position"	: "TL",
			"time" 		: 5000
		},
		{
			"name" 		: "tour_5",
			"bgcolor"	: "black",
			"color"		: "white",
			"text"		: "你可以在每个点上控制提示栏的指向方向",
			"position"	: "TL",
			"time" 		: 5000
		},
		{
			"name" 		: "tour_6",
			"bgcolor"	: "#111199",
			"color"		: "#ff0000",
			"text"		: "还可以标记不同的颜色",
			"position"	: "BL",
			"time" 		: 5000
		},
		{
			"name" 		: "tour_7",
			"bgcolor"	: "black",
			"color"		: "white",
			"text"		: "更重要的是,支持自动滚动位置",
			"position"	: "TL",
			"time" 		: 5000
		}
	],
	//定义是否自动播放,默认为不自动
	autoplay	= false,
	//timeout for the step
	showtime,
	//current step of the tour
	step		= 0,
	//total number of steps
	total_steps	= config.length;
	//加载控制器
	showControls();
	/*
	绑定事件
	 */
	$('#activatetour').live('click',startTour);
	$('#canceltour').live('click',endTour);
	$('#endtour').live('click',endTour);
	$('#restarttour').live('click',restartTour);
	$('#nextstep').live('click',nextStep);
	$('#prevstep').live('click',prevStep);
	function startTour(){
		$('#activatetour').remove();
		$('#endtour,#restarttour').show();
		if(!autoplay && total_steps > 1)
			$('#nextstep').show();
		showOverlay();
		nextStep();
	}
	function nextStep(){
		if(!autoplay){
			if(step > 0)
				$('#prevstep').show();
			else
				$('#prevstep').hide();
			if(step == total_steps-1)
				$('#nextstep').hide();
			else
				$('#nextstep').show();	
		}	
		if(step >= total_steps){
			//如果是最后一步
			endTour();
			return false;
		}
		++step;
		showTooltip();
	}
	function prevStep(){
		if(!autoplay){
			if(step > 2)
				$('#prevstep').show();
			else
				$('#prevstep').hide();
			if(step == total_steps)
				$('#nextstep').show();
		}		
		if(step <= 1)
			return false;
		--step;
		showTooltip();
	}
	function endTour(){
		step = 0;
		if(autoplay) clearTimeout(showtime);
		removeTooltip();
		hideControls();
		hideOverlay();
	}
	function restartTour(){
		step = 0;
		if(autoplay) clearTimeout(showtime);
		nextStep();
	}
	function showTooltip(){
		//移除激活的
		removeTooltip();
		var step_config		= config[step-1];
		var $elem			= $('.' + step_config.name);
		if(autoplay)
			showtime	= setTimeout(nextStep,step_config.time);
		var bgcolor 		= step_config.bgcolor;
		var color	 		= step_config.color;
		var $tooltip		= $('<div>',{
			id			: 'tour_tooltip',
			className 	: 'tooltip',
			html		: '<p>'+step_config.text+'</p><span class="tooltip_arrow"></span>'
		}).css({
			'display'			: 'none',
			'background-color'	: bgcolor,
			'color'				: color
		});
		//
		//
		var properties		= {};
		var tip_position 	= step_config.position;
		//
		$('body').prepend($tooltip);
		//get some info of the element
		var e_w				= $elem.outerWidth();
		var e_h				= $elem.outerHeight();
		var e_l				= $elem.offset().left;
		var e_t				= $elem.offset().top;
		switch(tip_position){
			case 'TL'	:
				properties = {
					'left'	: e_l,
					'top'	: e_t + e_h + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_TL');
				break;
			case 'TR'	:
				properties = {
					'left'	: e_l + e_w - $tooltip.width() + 'px',
					'top'	: e_t + e_h + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_TR');
				break;
			case 'BL'	:
				properties = {
					'left'	: e_l + 'px',
					'top'	: e_t - $tooltip.height() + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_BL');
				break;
			case 'BR'	:
				properties = {
					'left'	: e_l + e_w - $tooltip.width() + 'px',
					'top'	: e_t - $tooltip.height() + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_BR');
				break;
			case 'LT'	:
				properties = {
					'left'	: e_l + e_w + 'px',
					'top'	: e_t + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_LT');
				break;
			case 'LB'	:
				properties = {
					'left'	: e_l + e_w + 'px',
					'top'	: e_t + e_h - $tooltip.height() + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_LB');
				break;
			case 'RT'	:
				properties = {
					'left'	: e_l - $tooltip.width() + 'px',
					'top'	: e_t + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_RT');
				break;
			case 'RB'	:
				properties = {
					'left'	: e_l - $tooltip.width() + 'px',
					'top'	: e_t + e_h - $tooltip.height() + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_RB');
				break;
			case 'T'	:
				properties = {
					'left'	: e_l + e_w/2 - $tooltip.width()/2 + 'px',
					'top'	: e_t + e_h + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_T');
				break;
			case 'R'	:
				properties = {
					'left'	: e_l - $tooltip.width() + 'px',
					'top'	: e_t + e_h/2 - $tooltip.height()/2 + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_R');
				break;
			case 'B'	:
				properties = {
					'left'	: e_l + e_w/2 - $tooltip.width()/2 + 'px',
					'top'	: e_t - $tooltip.height() + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_B');
				break;
			case 'L'	:
				properties = {
					'left'	: e_l + e_w  + 'px',
					'top'	: e_t + e_h/2 - $tooltip.height()/2 + 'px'
				};
				$tooltip.find('span.tooltip_arrow').addClass('tooltip_arrow_L');
				break;
		}
		var w_t	= $(window).scrollTop();
		var w_b = $(window).scrollTop() + $(window).height();
		var b_t = parseFloat(properties.top,10);
		if(e_t < b_t)
			b_t = e_t;
		var b_b = parseFloat(properties.top,10) + $tooltip.height();
		if((e_t + e_h) > b_b)
			b_b = e_t + e_h;
		if((b_t < w_t || b_t > w_b) || (b_b < w_t || b_b > w_b)){
			$('html, body').stop()
			.animate({scrollTop: b_t}, 500, 'easeInOutExpo', function(){
				if(autoplay){
					clearTimeout(showtime);
					showtime = setTimeout(nextStep,step_config.time);
				}
				//显示新的
				$tooltip.css(properties).show();
			});
		}
		else
			$tooltip.css(properties).show();
	}
	function removeTooltip(){
		$('#tour_tooltip').remove();
	}
	function showControls(){
		var $tourcontrols  = '<div id="tourcontrols" class="tourcontrols">';
		$tourcontrols += '<p>第一次来访?</p>';
		$tourcontrols += '<span class="button" id="activatetour">开始向导</span>';
			if(!autoplay){
				$tourcontrols += '<div class="nav clearfix"><span class="button" id="prevstep" style="display:none;">< 上一个</span>';
				$tourcontrols += '<span class="button" id="nextstep" style="display:none;">下一个 ></span></div>';
			}
			$tourcontrols += '<a id="restarttour" style="display:none;">重新开始</span>';
			$tourcontrols += '<a id="endtour" style="display:none;">结束向导</a>';
			$tourcontrols += '<span class="close" id="canceltour"></span>';
		$tourcontrols += '</div>';
		$('body').prepend($tourcontrols);
		$('#tourcontrols').animate({'right':'30px'},500);
	}
	function hideControls(){
		$('#tourcontrols').remove();
	}
	function showOverlay(){
		var $overlay	= '<div id="tour_overlay" class="overlay"></div>';
		$('body').prepend($overlay);
		$("#tour_overlay").css({
			display:"block",height:$(document).height()
		});
	}
	function hideOverlay(){
		$('#tour_overlay').remove();
	}
});
</script>



用户评论
大牛,别默默的看了,快登录帮我点评一下吧!:)      登录 | 注册


热门标签: 瀑布流 收藏 预览 自适应页面大小 响应式区块列表布局 摇摆 烟花 清单样式 照相机 注释 下划线 结构图 鼠标悬停 条形码 弹幕 画板 朋友圈样式 红包 css绘制样式 支付 图文布局 滑动导航菜单 右键菜单 图片头像上传 二维码 滑动选项卡切换 文字提示框 文件上传 地图 图片滑动 提示框/弹出层 文本框 计算器 文字滑动 layer 下拉框 计时器 滑动手风琴 lightbox 复选 桌面 滑动星星打分 单选 跳转 Tooltip工具提示框 登录框 步骤 浮动提示框 注册框 键盘 html5弹窗动画 搜索框 签到 验证码 分享 二级联动 点赞 投票 三级联动 雪花 城市选择 打印 value赋值 筛选 答题 按钮控制 购物车 震动 颜色选择 表单提交 全选/反选 图表 添加删除 鼠标滑过 添加标签 抽奖 密码强度验证 表情 表单验证 qq空间 头像截图 html5按钮动画 星星打分评分 按钮样式 密码修改设置 编辑器 播放器 电子杂志 排行榜 分页翻页 排序 表格隔行变色 table表格 进度条 多功能 滑动滑过 弹出层拖动 窗口提示框 滑动星星打分 切换按钮 form表单 其他更多

×
×

注册

官方QQ群

扫描上面二维码加微信群

官方QQ群

jQuery/js讨论群
群号:642649996
Css3+Html5讨论群
群号:322131262

加群请备注:从官网了解到