为什么平板搜东西ipad打字键盘不见了的地方不是写搜索而是search

你有什么在网上搜索东西的神搜索技巧? - 知乎11669被浏览355689分享邀请回答dou.bz/4EcKnj (二维码自动识别)2.电影电视剧资源大部分在所在地院线有上映的电影,我都会去买票看。其实,只是搜一般的影视资源,豆藤就够用了,在网盘和BT种子里都能搜得到。如果没有的话,就再去B站。最近看好多实验短片,大部分都在Vimeo上。这是之前被关闭的非常知名的某某字幕组新网站 现在需要通过连续登陆天数升到一定级别才能看到资源还没有的话,就只能去几个torrent种子网站找了。不知道有没有被墙。最近在做一门课的project,其中有个片段要用到Kim Kardashian的真人秀出现,果然中国人没几个看她节目的,网盘里都没有。喏,最后就是在下面这几个网站里找到的。其中,我比较喜欢用最后一个,从三四年前就开始下电影用,现在有时也会用,在国内使用的时候好像网站加载会比较卡。3.影视音效素材顺序按照个人钟意程度从大到小排列。4.论文文献知网就算了吧,写论文想找个中文的参考一下,大部分都往社会主义马列思想鬼扯,一点用也帮不上。书格致力于开放式分享、介绍、推荐古本(四九以前的影像本)PDF 。5.designer brand clothing6.艺术最近研究Modern art和Contemporary art,有些书上介绍了艺术家和作品,但是没给图。自己搜吧。一般就google或下面三个网站。推荐个APP叫iMuseum很好用啊,可以看全球和国内各大城市近期都有哪些展览。7.乱七八糟的汉典,搜汉字玩的。一个可以从Facebook、Vimeo、Vine一些网站上下载视频的网站。把网址输入进去就好。朋友以前教过一个好玩的。在百度或者谷歌搜一个人的QQ邮箱,可能会发现那个人之前你并不知道的一面,或者过往的某些历史。(亲测多次,非常好用,发现好多人的小秘密,和一些让自己后悔的事情。以上是我自己收藏夹里的搜索相关的网站,下面还有三篇文章自己看去吧,懒得复制粘贴了。你看完,只要网络上存在的资源基本你都能找到。感谢这些资源的创造者、网站的创建者和传播它们的人们。-----------------4.12增加内容------------------------------------------------------------------------------8.图片资源评论里有人问了高清图片资源,其实我知道的那些网站,专业人士可能都知道的,但还是分享一下吧。大部分都是免费(无版权限制)并且高清的图片网站,不过你最好还是先看一下网站各自的版权规定。我最喜欢的就是很出名的每十天分享十张图片,每一张都很好看。如果你觉得自己的摄影作品也很棒,也可以上传在这个网站上面。2.5K54 条评论分享收藏感谢收起24719 条评论分享收藏感谢收起查看更多回答7 个回答被折叠()jQuery 动态文字搜索功能
先简单讲一下需求:页面中会列出多行个人信息记录,为方便查找,在顶层增加一个搜索栏,可根据用户姓名查找记录。
如果只想查看代码,可跳过分析过程,文章底部提供了完整的代码。
以下是我的编写过程:
动态页面,多条记录均由forEach生成,结构如下:
&form name=&userForm&&
& & &table style=&width:200&&
& & & & &thead&
& & & & & & &tr&
& & & & & & & & &th&&&/th&
& & & & & & & & &th&&&/th&
& & & & & & & & &th&教师姓名&/th&
& & & & & & &/tr&
& & & & &/thead&
& & & & &tbody&
& & & & & & &c:forEach items=&${userList}& var=&user& varStatus=&itStatus&&
& & & & & & &tr&
& & & & & & & & &td class=&cellBg-gary&&${itStatus.index+1}&/td&
& & & & & & & & &td&
& & & & & & & & & & &input type=&checkbox& name=&userId& value=&${user.id}&/&
& & & & & & & & &/td&
& & & & & & & & &td&${user.name}&/td&
& & & & & & &/tr&
& & & & & & &/c:forEach&
& & & & &/tbody&
& & &/table&
为了方便调试静态页面,可以先将web项目启动,然后在浏览器中查看源代码,复制form中的代码,另存为一个本地HTML文件。
chrome操作如下:
为了看起来舒服一些,简单的增加一些表格样式:
&style type=&text/css&&
border-collapse:
text-align:
table, th, td{
接下来,我们在&thead&中增加一个搜索框:
&th colspan=&3&&
&input type=&text& id=&searchText&/&
&input type=&button& id=&searchBtn& value=&搜索&/&
设置一个单击事件的监听:
$(function(){
$('#searchBtn').on('click', function(){
alert('search');
这里有两个建议:
1、为了避免代码相互影响,尽量明确监听的作用域
2、当你不确定当前的事件触发者时(如:&td&&a href=&#& onclick=&&&/a&&/td&),可以alert($(this))来确定触发元素
修改后的代码如下:
$(function(){
$('#userForm').on('click', '#searchBtn', function(){
alert($(this).val() + ':' + $(this).html());
我们可以通过$('#searchText').val()获取文本框中输入的数据,无难度,主要问题是怎么在页面中查找与之匹配的元素:
为了提高效率,尽可能的避免使用each、replace和RegExp(),推荐使用jQuery :contains选择器,具体用法为$(&td:contains(str)&)
这里遇到了一个问题:contains(str)中的str对象会被理解为字符串&str&,找到的解决方案是采用字符串拼接的方式,有更好的解决方案的前辈,请不吝赐教。
并且,为了准确查找,我们给需要查找的&td&标签设置一个class属性,则有:
&td class=&userNameTd&&${user.name}&/td&
所以,获取查找结果的语句为:
$(&td.userNameTd:contains(&+
$('#searchText').val() +&)&)
为了明确显示查找结果,我采用的方案是先将&tbody&下的&tr&全部隐藏,然后再将结果所在的&tr&行显示出来,
而且当输入框中的值为空时,显示出所有列。方法变为:
$(function(){
$('#userForm').on('click', '#searchBtn', function(){
if($('#searchText').val()){
$('#userForm').find('tbody tr').hide()
$(&td.userNameTd:contains(&+ $('#searchText').val() +&)&).parent('tr').show();
$('#userForm').find('tbody tr').show();
至此,一个简单的文字搜索已经初具雏形了。我们再来进行一些完善工作。
首先,为了更搜索关键字更醒目一些,我们可以改变一下$('#searchText').val()的背景颜色
我们先创建一个样式:
background-color:
因为操作的是文字,而不是对象,所以不能增加class属性,解决方法为采用 replace('str', '&span class=&bg-y&&'+str+'&/span&');
对统一对象进行多次操作,可以先将对象赋值给一个变量。修改后的代码为:
$(function(){
$('#userForm').on('click', '#searchBtn', function(){
var searchText = $('#searchText').val();
if(searchText){
$('#userForm').find('tbody tr').hide();
var tds = $(&td.userNameTd:contains(&+ $('#searchText').val() +&)&);
tds.html(tds.html().replace(searchText,'&span class=&bg-y&&'+searchText+'&/span&'));
tds.parent('tr').show();
$('#userForm').find('tbody tr').show();
这时又遇到了一个问题,之前增加背景颜色的文字,不会取消背景色。所以,我们在每次事件发生时,执行一个cleanHighLight()函数,将搜索时增加的&span&再替换成原先的内容。
function cleanHighLight() {
var tds = $('span.bg-y').parent();
var vCurrentText = $('span.bg-y').html();
if(!!tds.html()){
tds.html(tds.html().replace('&span class=&bg-y&&'+ vCurrentText
+'&/span&',
vCurrentText ));
然后,感觉输入文本之后,还需要点击,这点不够友好,我们能不能采用输入文本即可动态搜索呢?
我们试着将监听对象改变为输入框'#searchText',监听事件变为'change'
$('#userForm').on('change', '#searchText', function(){
//alert($('#searchText').val());
$('#userForm').find('tbody tr').hide()
$(&td.userNameTd:contains(&+ $('#searchText').val() +&)&).parent('tr').show();
但结果是,必须在文本框失去焦点时才会触发事件,并没有达到预期。
通过查找资料,找到了解决方案:可同时绑定oninput 和onpropertychange事件。代码如下:
$(function(){
$('#userForm').on('input propertychange', '#searchText', function(){
var searchText = $('#searchText').val();
cleanHighLight();
if(searchText){
$('#userForm').find('tbody tr').hide();
var tds = $(&td.userNameTd:contains(&+searchText +&)&);
tds.html(tds.html().replace(searchText,'&span class=&bg-y&&'+searchText+'&/span&'));
tds.parent('tr').show();
$('#userForm').find('tbody tr').show();
另外,我们可以给searchText 增加一个$.trim()函数,避免误输入空格字符:
var searchText = $.trim($('#searchText').val());
最后,我们再给文本框增加一些简单的HTML5元素
将 &input type=&text& /&标签替换为 &input type=&search& /& (增加了一个删除按钮)
增加一个autocomplete=&on&的属性,可以让浏览器预测字段输入
再增加一个占位符属性,placeholder=&例如:张三&
这些HTML5标签在不同浏览器下,可能有不能的显示效果,但是即使在ie6下,也不会影响搜索功能。
动态文字搜索功能,暂时先写到这。
附完整代码:
&!DOCTYPE html&
&title&动态文字搜索&/title&
&meta charset='utf-8' /&
&script src=&/jquery-1.8.3.min.js&&&/script&
&script type=&text/javascript&&
$(function(){
$('#userForm').on('input propertychange', '#searchText', function(){
var searchText = $.trim($('#searchText').val());
cleanHighLight();
if(searchText){
$('#userForm').find('tbody tr').hide();
var tds = $(&td.userNameTd:contains(&+ searchText +&)&);
if(!!tds.html()) {
tds.html(tds.html().replace(searchText,'&span class=&bg-y&&'+searchText+'&/span&'));
tds.parent('tr').show();
$('#userForm').find('tbody tr').show();
function cleanHighLight() {
var tds = $('span.bg-y').parent();
var vSearchText = $('span.bg-y').html();
if(!!tds.html()){
tds.html(tds.html().replace('&span class=&bg-y&&'+vSearchText+'&/span&', vSearchText));
&style type=&text/css&&
border-collapse:
text-align:
table, th, td{
background-color:
&div id=&container&&
&form name=&userForm& id=&userForm&&
&th colspan=&3&&
&input type=&search& id=&searchText& autocomplete=&on&/&
&th&&&/th&
&th&&&/th&
&th&姓名:&/th&
&td&1&/td&
&input type=&checkbox& name=&userId& value=&05cacc57-cb8a-4ba7-a928-1d49a0f0cfc0&&
&td class=&userNameTd&&朝气&/td&
&td&2&/td&
&input type=&checkbox& name=&userId& value=&&&
&td class=&userNameTd&&默认&/td&
&td&3&/td&
&input type=&checkbox& name=&userId& value=&403b76a5-22f9-470c-8d9c-d0becca9ff3d&&
&td class=&userNameTd&&管理员5&/td&
&td&4&/td&
&input type=&checkbox& name=&userId& value=&49adbf34-d9bc-4f5c-b440-cad07913afa1&&
&td class=&userNameTd&&王五&/td&
&td&5&/td&
&input type=&checkbox& name=&userId& value=&52dbff4d-976b-4e92-8b83-25b1fd4fe8c4&&
&td class=&userNameTd&&admin4real&/td&
&td&6&/td&
&input type=&checkbox& name=&userId& value=&82-41a5-b097-28d02e804a69&&
&td class=&userNameTd&&admin7&/td&
&td&7&/td&
&input type=&checkbox& name=&userId& value=&7bfbbf24-7f4a--58b&&
&td class=&userNameTd&&王五&/td&
&td&8&/td&
&input type=&checkbox& name=&userId& value=&8e2e427c-edf7-40e3-bcc1-&&
&td class=&userNameTd&&admin3&/td&
&td&9&/td&
&input type=&checkbox& name=&userId& value=&c0c-43f8-b294-bbe1990531df&&
&td class=&userNameTd&&朝气&/td&
&td&10&/td&
&input type=&checkbox& name=&userId& value=&61-4bcc-9c8c-7c8c938d41c0&&
&td class=&userNameTd&&王五&/td&
&td&11&/td&
&input type=&checkbox& name=&userId& value=&-79f3-4b71-a023-d67618ff0eba&&
&td class=&userNameTd&&admin2&/td&
&td&12&/td&
&input type=&checkbox& name=&userId& value=&a14cea40-02c3-479c-9ef0-d493d013c409&&
&td class=&userNameTd&&admin1Real&/td&
&td&13&/td&
&input type=&checkbox& name=&userId& value=&b903ea21-95d6--f7de83a8b6ba&&
&td class=&userNameTd&&朝气&/td&
&td&14&/td&
&input type=&checkbox& name=&userId& value=&badf02fe-e494-479c-922c-dfa5967d21fb&&
&td class=&userNameTd&&王五&/td&
&td&15&/td&
&input type=&checkbox& name=&userId& value=&cc100fe0-65c9-41a2-95e2-612f4d18f6fd&&
&td class=&userNameTd&&张三&/td&
&td&16&/td&
&input type=&checkbox& name=&userId& value=&cd2e596b-5b45-4f08-a3c2-d95f7397003a&&
&td class=&userNameTd&&朝气&/td&
&td&17&/td&
&input type=&checkbox& name=&userId& value=&d00d125f-95a6-4fb4-b209-a283773ddfd6&&
&td class=&userNameTd&&管理员5&/td&
&td&18&/td&
&input type=&checkbox& name=&userId& value=&fe76629d-d24d-4296-be05-bf&&
&td class=&userNameTd&&ADMIN124&/td&
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?15:24 提问
Android仿IOS SearchBar(搜索框)!
Android仿IOS SearchBar(搜索框):
1.样式统一,点击软键盘“搜索”按钮进行搜索;
2.搜索框右边有一个取消按钮,点击了取消按钮 搜索框就恢复正常 软键盘隐藏;
3.默认hint和搜索图标在搜索框正中间,输入内容是hint隐藏,搜索图标在最前面;
4.当输入框里面有内容是,输入框最右边有一个“叉叉”的图标
,点击图标输入框内容全部清空,软键盘不隐藏;
按赞数排序
可参考下面的贴子
其他相似问题iOS城市快速搜索、searchBar拼音与汉字过滤搜索
大家都知道,现在已经是移动互联网的时代。移动互联网重点在移动二字。移动是什么?说的直白一些就是位置,从这个点到那个点,从这个城市到另外一个城市。
随着移动互联越来越深入人心,人们也的确感受到了其带来的诸多生活上的便利。
&现在,每一个有规模的公司和单位都想着拥有自己的APP,现在绝大部分的APP都是基于索罗门的应用。打车类的、外卖类的、地图类的、新闻类的,都是基于用户的位置来提供不同的服务。当用户的位置发生改变,界面展示的数据也随之改变。
但是,有时候iOS用户根本就不允许我们的应用自动定位,把应用的定位功能彻底关闭,那纵然你三头六臂也无法获取用户的位置,那此时,只能通过用户自己手动选择自己的城市了。还有一种情况就是身在曹营心在汉,我人虽然在北京,但是我想看一看济南当地的天气或者新闻,那还是要用户自己手动选择自己的城市。但是全国上千个城市,用户怎么才能快速找到自己所在的城市或者想要定位的城市呢?总不能让用户一个一个去看吧?那这样,估计果断卸掉啊,这用户体验太差了。
方案一: &让用户一条一条的往上滑,历经千辛万苦找到自己的所需城市。
方案二: 我们提供一个搜索框,用户用拼音、汉字进行搜索。
那么不用考虑,我下面着重介绍用户体验更胜一筹的方案二如何实现。
新建工程,导入一个城市的plist文件,这个文件里有全国的城市,如图所示:
& 2.在ViewController.m里的viewDidLoad方法里面做三步操作
1.添加搜索框
addSearchBar];
& // 2.初始化表格数据
initTableData];
& // 3.添加表格
addTableViewAndCoverView];
(void)addSearchBar
& CGFloat viewW
= self.view.bounds.size.width;
& & UISearchBar
*search = [[UISearchBar
& & search.delegate
& & search.placeholder
= @"请输入城市名称或者拼音";
& & search.frame
= CGRectMake(0,
viewW, 64);
& search.autoresizingMask
UIViewAutoresizingFlexibleWidth;
& search.showsCancelButton =
& & UIButton
*btn = [search valueForKey:@"_cancelButton"];
& [btn setTitle:@"取消"
forState:UIControlStateNormal];
& self.navigationItem.titleView
& & _searchBar
#pragma mark - 初始化表格数据
(void)initTableData
& _groupsArray
[NSMutableArray array];
*citiesArr
= [NSArray
arrayWithContentsOfFile:[[NSBundle
mainBundle]
pathForResource:@"Cities.plist"
ofType:nil]];
(NSDictionary
citiesArr) {
//&CityGroup是一个存放每个城市数组的模型类
& CityGroup
*grorp = [CityGroup
objectWithKeyValues:dic];
& [_groupsArray
addObject:grorp];
#pragma mark - 添加表格
(void)addTableViewAndCoverView
& CGFloat viewW
= self.view.bounds.size.width;
& CGFloat viewH
= self.view.bounds.size.height;
& & CGFloat
tableY = 0;
& & CGFloat
tableW = viewW;
& & CGFloat
tableH = viewH - tableY;
& & CGRect
tableF = CGRectMake(0,
tableY, tableW, tableH);
& _tableView
[[UITableView
initWithFrame:tableF
style:UITableViewStylePlain];
& _tableView.dataSource
& _tableView.delegate
更改索引的背景颜色:
& _tableView.sectionIndexBackgroundColor
[UIColor clearColor];
& // 索引颜色
& _tableView.sectionIndexColor
[UIColor grayColor];
& & [self.view
addSubview:_tableView];
& [_tableView
registerClass:[UITableViewCell
forCellReuseIdentifier:@"Cell"];
& // 蒙版view
& _coverView =
alloc]initWithFrame:_tableView.bounds];
& _coverView.backgroundColor
[UIColor darkGrayColor];
& _coverView.alpha
代码第二部分:
#pragma mark - tableView dataSource / delegate
(NSInteger)numberOfSectionsInTableView:(UITableView
*)tableView
_groupsArray.count;
(NSInteger)tableView:(UITableView
*)tableView numberOfRowsInSection:(NSInteger)section
& & CityGroup
*sectionGroup = _groupsArray[section];
& & NSArray
*citiesDic = sectionGroup.cities;
& & return
citiesDic.count;
*)tableView:(UITableView
*)tableView titleForHeaderInSection:(NSInteger)section
& & CityGroup
*group = _groupsArray[section];
& & return
group.name;
(UITableViewCell
*)tableView:(UITableView
*)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath
& & static
*identifier = @"Cell";
& & UITableViewCell
*cell = [tableView dequeueReusableCellWithIdentifier:identifier
forIndexPath:indexPath];
& & CityGroup
*sectionGroup = _groupsArray[indexPath.section];
& & NSArray
*citiesArr = sectionGroup.cities;
& & EveryCity
*city = citiesArr[indexPath.row];
& & cell.textLabel.text
= city.name;
& & return
*)sectionIndexTitlesForTableView:(UITableView
*)tableView
[_groupsArray
valueForKeyPath:@"name"];
下面要监听搜索框的文字输入,代码部分:
#pragma mark - searchBar delegate
// 搜索框开始editing
(BOOL)searchBarShouldBeginEditing:(UISearchBar
*)searchBar
& & [self.view
addSubview:_coverView];
& return YES;
(void)searchBar:(UISearchBar
*)searchBar textDidChange:(NSString
*)searchText
& & NSLog(@"searchText
= %@",searchText);
(searchText.length)
(!_resultTabCon)
& &// 用来展示搜索结果页
& & _resultTabCon
[[SearchResultViewController alloc]init];
& & _resultTabCon.tableView.frame
CGRectMake(0,
self.view.bounds.size.width,
self.view.bounds.size.height-64);
NSMutableArray
*cityArray = [NSMutableArray
(CityGroup
_groupsArray)
& & [cityArray addObjectsFromArray:group.cities];
_resultTabCon.searchCities
& _resultTabCon.searchText
& [self.view
addSubview:_resultTabCon.tableView];
& & }else{
remove resultView
(_resultTabCon)
& & [_resultTabCon.view
removeFromSuperview];
(void)searchBarCancelButtonClicked:(UISearchBar
*)searchBar
searchEndEditing];
下面介绍搜索结果SearchResultViewController控制器
//& SearchResultViewController.h
//& searchCitiesList(城市搜索)
//& Created by yanzhg@chexun on 15/7/29.
//& Copyright (c) 2015年
yanzhg@chexun. All rights reserved.
@interface
SearchResultViewController : UITableViewController
@property (nonatomic
@property (nonatomic
NSMutableArray
下面是.m文件
"SearchResultViewController.h"
@interface
SearchResultViewController ()
& & NSArray
@implementation
SearchResultViewController
(void)viewDidLoad
viewDidLoad];
& & _dataArray
= [NSArray
(void)setSearchText:(NSString
*)searchText{
& // 0.文字转成小写
& & _searchText
= searchText.lowercaseString;
& // 1.包含
& NSPredicate
= [NSPredicate
predicateWithFormat:@"name
contains %@ or pinyinHeader contains%@ or pinyin contains
%@",_searchText,_searchText,_searchText];
& _dataArray&
= [_searchCities
filteredArrayUsingPredicate:pre1];
& [self.tableView
reloadData];
(NSInteger)tableView:(UITableView
*)tableView numberOfRowsInSection:(NSInteger)section
_dataArray.count;
(UITableViewCell
*)tableView:(UITableView
*)tableView cellForRowAtIndexPath:(NSIndexPath
*)indexPath {
& UITableViewCell *cell
= [[UITableViewCell alloc]init];
& & cell.textLabel.text
= [_dataArray[indexPath.row]
& & return
*)tableView:(UITableView
*)tableView titleForHeaderInSection:(NSInteger)section
stringWithFormat:@"共有%i个搜索结果",(int)_dataArray.count];
工程里有一个EveryCity模型类,代表着每一个城市。其有以下属性:
@property (nonatomic
@property (nonatomic
@property (nonatomic
name赋值的时候,处理pinyin和pinyinHeader两个属性,要用到PinYin4Objc,所以先导入头文件&:
(void)setName:(NSString
& HanyuPinyinOutputFormat *format
= [[HanyuPinyinOutputFormat alloc]init];
& format.caseType
CaseTypeLowercase;
& & format.vCharType
= VCharTypeWithV;
& format.toneType
ToneTypeWithoutTone;
[PinyinHelper
toHanyuPinyinStringWithNSString:_name
withHanyuPinyinOutputFormat:format
withNSString:KIDENTIFIER];
*stringArray
= [_pinyin
componentsSeparatedByString:KIDENTIFIER];
& NSMutableString *string
= [NSMutableString string];
& & _pinyinHeader
& & for(NSString
stringArray){
[string appendString:[str
substringToIndex:1]];
stringByReplacingOccurrencesOfString:KIDENTIFIER
withString:@""];
& NSLog(@"%@--%@--%@",_name,_pinyin,_pinyinHeader);
代码部分已经分享完毕。效果如下:
当然也支持汉字搜索,在此不做演示了。
多谢。如有问题请联系我。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。页面已拦截
无锡网警提示您:
该网站已被大量用户举报,存在代办假信用卡的嫌疑,可能会骗取您的手续费或窃取您的个人信息,建议您谨慎访问。

我要回帖

更多关于 ipad打字键盘不见了 的文章

 

随机推荐