JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)


Posted in Javascript onMarch 27, 2013

当页面需要显示的内容较多时,我们很多人采用分页的方法解决。

而有的时候,分页的效果却又是非常令人厌恶的。滚动条无疑是一种简单而又高效的一种方式。而这里,处于对用户体验的考虑,我使用Jquery实现了一种类似“滚动停靠”的效果。这样当我们向下滚动内容的时候,搜索框会“悬挂(停靠)”在窗口顶端。

这样做的好处是,当用户需要重新筛选内容的时候,不必再次向上滚动,随时可以输入条件进行搜索。

以下是我实现这个效果的思路
首先,设计一个隐藏的搜索框。这个隐藏的搜索框的样式、事件和已经显示出来的搜索框是一样的。
然后设置隐藏搜索框的位置“absolute”。
第三,使用Jquery判断,如果滚动条的滚动距离使得原来显示的搜索框不可见时,显示固定在顶部的隐藏搜索框。

以下是一些这个效果的一些代码:
浮动搜索框HTML代码:(显示的搜索框和这个是一样的,只不过类不同。)

<div id ="flowsearchdiv"> 
<table class="flowsearch"> 
<tr> 
<td class="conditionname">条件一:</td> 
<td class="condition"> 
<asp:DropDownList ID="dropFlowCondition1" CssClass="drop" runat="server"> 
</asp:DropDownList> 
</td> 
<td class="conditionname">条件二:</td> 
<td class="condition"> 
<asp:DropDownList ID="droFlowCondition2" CssClass="drop" runat="server"> 
</asp:DropDownList> 
</td> 
<td class="conditionname">条件三:</td> 
<td class="condition"> 
<asp:DropDownList ID="dropFlowCondition3" CssClass="drop" runat="server"> 
</asp:DropDownList> 
</td> 
<td class="conditionname"> 
<asp:Button ID="flowbtnsearch" CssClass="btn" runat="server" Text="查询" /> 
</td> 
</tr> 
</table> 
</div>

浮动搜索框页面css:(显示的搜索框和这个样式要一样,只不过不要设置位置固定)
/*下拉框*/ 
.drop 
{ 
width: 175px; 
} 
/*浮动搜索框中的表格*/ 
#flowsearchdiv table 
{ 
background-color: #484343; 
color: White; 
border-top: 2px solid White; 
} 
/*浮动搜索框中*/ 
#flowsearchdiv 
{ 
display:none; 
position:absolute; 
left:217px; 
}

Jquery代码:
//实现窗口滚动,搜索框不滚动 
$(function () { 
$(window).scroll(function () { 
var top = $(this).scrollTop(); 
var flowSearch = $("#flowsearchdiv"); 
if (top - 36 < 0) { 
//浮动搜索框隐藏,淡入效果 
flowSearch.css("display", "none"); 
} else { 
flowSearch.css("display", "block"); 
top = top + 40; 
flowSearch.css("top", top); 
} 
}); });

到这里基本上我们的效果就出来了。当我们向下滚动滚动条时,如果原来的搜索框超出页面可视范围,隐藏搜索框显示。从用户的角度看,就是搜索框停在了页面顶部,这样用户的体验就不言而喻啦。
效果图:
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
Javascript 相关文章推荐
javascript在事件监听方面的兼容性小结
Apr 07 Javascript
最短的IE判断代码
Mar 13 Javascript
基于jquery的3d效果实现代码
Mar 23 Javascript
JS完成代码前最好对其做5件事
Apr 07 Javascript
浅析JQuery获取和设置Select选项的常用方法总结
Jul 04 Javascript
创建一个类Person的简单实例
May 17 Javascript
js精准的倒计时函数分享
Jun 29 Javascript
JavaScript中的splice方法用法详解
Jul 20 Javascript
easyui-combobox 实现简单的自动补全功能示例
Nov 08 Javascript
Angular4如何自定义首屏的加载动画详解
Jul 26 Javascript
详解express与koa中间件模式对比
Aug 07 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
早该知道的7个JavaScript技巧
Mar 27 #Javascript
JavaScript中的style.display属性操作
Mar 27 #Javascript
jquery ajax提交整个表单元素的快捷办法
Mar 27 #Javascript
jQuery渐变发光导航菜单的实例代码
Mar 27 #Javascript
鼠标放在图片上显示大图的JS代码
Mar 26 #Javascript
javascript数组去重3种方法的性能测试与比较
Mar 26 #Javascript
两种常用的javascript数组去重方法思路及代码
Mar 26 #Javascript
You might like
将博客园(cnblogs.com)数据导入到wordpress的代码
2013/01/06 PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
2014/06/26 PHP
PHP判断网络文件是否存在的方法
2015/03/12 PHP
ThinkPHP实现生成和校验验证码功能
2017/04/28 PHP
Laravel中任务调度console使用方法小结
2017/05/07 PHP
HTML Dom与Css控制方法
2010/10/25 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
jquery对象访问是什么及使用方法介绍
2016/05/03 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
JS键盘版计算器的制作方法
2016/12/03 Javascript
Vue单页及多页应用全局配置404页面实践记录
2018/05/22 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
Vue-cli 移动端布局和动画使用详解
2020/08/10 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
[02:14]DOTA2英雄基础教程 修补匠
2013/12/23 DOTA
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
Python使用struct处理二进制的实例详解
2017/09/11 Python
django限制匿名用户访问及重定向的方法实例
2018/02/07 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
总结python中pass的作用
2019/02/27 Python
win10下python2和python3共存问题解决方法
2019/12/23 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
python如何修改文件时间属性
2021/02/05 Python
localStorage、sessionStorage使用总结
2017/11/17 HTML / CSS
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
销售员岗位职责范本
2014/02/03 职场文书
乡镇干部先进事迹材料
2014/02/03 职场文书
国际贸易实训报告
2014/11/05 职场文书
面试感谢信范文
2015/01/22 职场文书
升职自荐信范文
2015/03/27 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
MySQL串行化隔离级别(间隙锁实现)
2022/06/16 MySQL