博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JqueryTips小实验,浏览器滚动条不限制
阅读量:5263 次
发布时间:2019-06-14

本文共 15396 字,大约阅读时间需要 51 分钟。

      最近做公司的项目有些地方可能需要一些小提示,于是自己建立项目研究tips。在此之前看到过一些别人写的JqueryTips,于是借鉴了一些别人的经验在此基础上我做出了一些改进。

      有的同学可能使用过其他一些JqueryTIps的工具,但是我看了那些有些不适合我来使用,所以自己做吧,用的也Happy。

      因为有些数据可能过长,会导致设计好的表格样式变形,所以在绑定数据的时候大多数都会设置过长数据省略号显示,但是这就会导致我们查看数据的时候不太方便,html自带的title技能可能已经足够我们使用,但是我觉得样式可能不好看,而且反应有些迟钝。于是做了这个小工具。代码不多。

      因为是测试用的,所以我直接在页面上写了这些数据,这些内容大家将就的看一下吧。不要计较这些啊。

       以下是测试数据的代码,包括CSS样式。

1   
View Code CSS代码
1   
2
3
4
7
10
13
16
19
22
25
28
31
32
33
34
35
38
41
44
47
50
53
56
59
62
63
64
67
70
73
76
79
82
85
88
91
92
93
96
99
102
105
108
111
114
117
120
121
122
125
128
131
134
137
140
143
146
149
150
151
154
157
160
163
166
169
172
175
178
179
180
183
186
189
192
195
198
201
204
207
208
209
212
215
218
221
224
227
230
233
236
237
238
241
244
247
250
253
256
259
262
265
266
267
270
273
276
279
282
285
288
291
294
295
296
299
302
305
308
311
314
317
320
323
324
325
328
331
334
337
340
343
346
349
352
353
354
357
360
363
366
369
372
375
378
381
382
383
5 编号 6 8 姓名 9 11 性别 12 14 电话 15 17 邮箱 18 20 地址 21 23 学历 24 26 婚否 27 29 备注 30
36 1 37 39 Mike11 40 42 男11 43 45 1523652256311 46 48 mikeLoveNike@gmail.com11 49 51 深圳市南山区白石洲上白石102栋11 52 54 本科11 55 57 已婚11 58 60 时间都去哪儿了时间都去哪儿了11时间都去度假了时间都去度假了吗 61
65 2 66 68 Mike22 69 71 男22 72 74 1523652256322 75 77 mikeLoveNike@gmail.com22 78 80 深圳市南山区白石洲上白石102栋22时间都去度假了时间都去度假了吗哈哈哈哈 81 83 本科22 84 86 已婚22 87 89 时间都去哪儿了时间都去哪儿了22时间都去度假了时间都去度假了吗哈哈哈哈 90
94 3 95 97 Mike33 98 100 男33101 103 1523652256333104 106 mikeLoveNike@gmail.com33107 109 深圳市南山区白石洲上白石102栋33时间都去度假了时间都去度假了吗哈哈哈哈110 112 本科33113 115 已婚33116 118 时间都去哪儿了时间都去哪儿了33时间都去度假了时间都去度假了吗哈哈哈哈119
123 4124 126 Mike44127 129 男44130 132 1523652256344133 135 mikeLoveNike@gmail.com44136 138 深圳市南山区白石洲上白石102栋44444时间都去度假了时间都去度假了吗哈哈哈哈139 141 本科44142 144 已婚44145 147 时间都去哪儿了时间都去哪儿了44时间都去度假了时间都去度假了吗哈哈哈哈148
152 5153 155 Mike55156 158 男55159 161 1523652256355162 164 mikeLoveNike@gmail.com55165 167 深圳市南山区白石洲上白石102栋55168 170 本科11171 173 已婚11174 176 时间都去哪儿了时间都去哪儿了55时间都去度假了时间都去度假了吗177
181 6182 184 Mike66185 187 男66188 190 1523652256366191 193 mikeLoveNike@gmail.com77194 196 深圳市南山区白石洲上白石102栋77时间都去度假了时间都去度假了吗哈哈哈哈197 199 本科77200 202 已婚77203 205 时间都去哪儿了时间都去哪儿了77时间都去度假了时间都去度假了吗哈哈哈哈206
210 8211 213 Mike88214 216 男88217 219 1523652256388220 222 mikeLoveNike@gmail.com88223 225 深圳市南山区白石洲上白石102栋88时间都去度假了时间都去度假了吗哈哈哈哈226 228 本科88229 231 已婚88232 234 时间都去哪儿了时间都去哪儿了88时间都去度假了时间都去度假了吗哈哈哈哈235
239 9240 242 Mike99243 245 男99246 248 1523652256399249 251 mikeLoveNike@gmail.com99252 254 深圳市南山区白石洲上白石102栋999999时间都去度假了时间都去度假了吗哈哈哈哈255 257 本科99258 260 已婚99261 263 时间都去哪儿了时间都去哪儿了99时间都去度假了时间都去度假了吗哈哈哈哈264
268 10269 271 Mike1010272 274 男1010275 277 152365225631010278 280 mikeLoveNike@gmail.com1010281 283 深圳市南山区白石洲上白石102栋1010284 286 本科1010287 289 已婚1010290 292 时间都去哪儿了时间都去哪儿了1010时间都去度假了时间都去度假了吗293
297 11298 300 Mike1111301 303 男1111304 306 152365225631111307 309 mikeLoveNike@gmail.com1111310 312 深圳市南山区白石洲上白石102栋1111时间都去度假了时间都去度假了吗哈哈哈哈313 315 本科1111316 318 已婚1111319 321 时间都去哪儿了时间都去哪儿了1111时间都去度假了时间都去度假了吗哈哈哈哈322
326 12327 329 Mike1212330 332 男1212333 335 152365225631212336 338 mikeLoveNike@gmail.com1212339 341 深圳市南山区白石洲上白石102栋1212时间都去度假了时间都去度假了吗哈哈哈哈342 344 本科1212345 347 已婚1212348 350 时间都去哪儿了时间都去哪儿了1212时间都去度假了时间都去度假了吗哈哈哈哈351
355 13356 358 Mike1313359 361 男1313362 364 152365225631313365 367 mikeLoveNike@gmail.com1313368 370 深圳市南山区白石洲上白石102栋131313131313时间都去度假了时间都去度假了吗哈哈哈哈371 373 本科1313374 376 已婚1313377 379 时间都去哪儿了时间都去哪儿了1313时间都去度假了时间都去度假了吗哈哈哈哈380
View Code table html代码

      以上是要准备的,除此之外还需要准备一个Jquery库。这个很好找吧。

      刚刚开始做的时候,遇到一个很棘手的问题,就是tip显示的时候遇到浏览器边框就会伸出去,然后你鼠标移动之后又根本看不着,好吧,这跟我们的需求很不符合了。于是我在判断tip的位置的时候做一个判断,这个判断是根据你页面宽度和tip的宽度来觉得的。看以下代码:

1  var windowWidth = $(window).width();//浏览器宽度2                 var tooltipWidth = $("#tooltip").width();//tipdiv宽度3                 if (windowWidth - e.clientX - 5 < tooltipWidth) {
//判断提示是否会被隐藏
View Code tip位置判断

      使用浏览器的当前宽度,减去鼠标当前位置,可以得到鼠标当前距离浏览器的宽度。再与tipdiv的宽度对比。

      这样在我鼠标移动的时候可以知道tip显示的地方是否会在浏览器的边缘了。然后根据这样的判断,可以讲tip的右边距设置成固定值,这样你移动鼠标都不会对tip产生影响了,但是当你鼠标移动到其他地方的时候又将重新计算。

      然后看一下给tip定位的代码:

if (windowWidth - e.clientX - 5 < tooltipWidth) {
//判断提示是否会被隐藏 $("#tooltip").css({ "top": (e.clientY + 5) + "px", "right": "5px" }) } else { $("#tooltip").css({ "top": (e.clientY + 5) + "px", "left": (e.clientX + 5) + "px" }) } }).mousemove(function (e) { var windowWidth = $(window).width(); var tooltipWidth = $("#tooltip").width(); if (windowWidth - e.clientX - 5 < tooltipWidth) {
//判断提示是否会被隐藏 $("#tooltip").css({ "top": (e.clientY + 5) + "px", "right": "5px" }) } else { $("#tooltip").css({ "top": (e.clientY + 5) + "px", "left": (e.clientX + 5) + "px" }) }
View Code tipdiv定位

      这里之前我一直都很迷糊,因为有两个属性在Jquery里面。pageX,Y和clientX,Y。做了许久都有一个问题困扰。就是当浏览器中数据太多了,出现了滚动条之后,pageX,Y已经不能准确定位了。于是另辟一条路。

      我Google了一下css定位相关的内容。开始我一直使用的absolute,绝对定位,相对page的。后来我使用的是fixed,相对于浏览器的可见页面。这样就好办了。继续看看代码:

1  var toolTip = "
" + $(this).text() + "
";2 $("body").append(toolTip);3 $("#tooltip").css({4 "position": "fixed",//这里使用fixed相对于浏览器可见页面定位5 "padding": "5px",6 "background": "#F0F0E8",7 "white-space": "nowrap",//让div内的文字内容部换行8 "border": "1px gray solid"9 }).show(200);
View Code tipDiv定义

      好了代码很简单,接下来看看效果如何吧。

 

经本人测试,Google和IE都可以使用。

有个bug我一直想不明白,就是当我的tip显示之后,我在移动鼠标,有时候会出现tipdiv被拉长了。求大神解释,看下效果:

      下面是html代码的附件,有兴趣的同学可以直接下载,用浏览器打开即可:

      以上是小弟个人理解,如果有更好的想法,欢迎拍砖,来辩。

转载于:https://www.cnblogs.com/xiaochao310/p/xiao_JqueryTipsTest.html

你可能感兴趣的文章
JMS消息
查看>>
Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台
查看>>
php上传文件及头像预览
查看>>
大四java实习生的一些经历
查看>>
线程池的概念
查看>>
Oracle_Statspack性能诊断工具
查看>>
转获取sql维护的表关系
查看>>
Java 序列化
查看>>
Java 时间处理实例
查看>>
Java 多线程编程
查看>>
Java 数组实例
查看>>
mysql启动过程
查看>>
2017前端面试题总结
查看>>
Http GetPost网络请求
查看>>
SWIFT国际资金清算系统
查看>>
Sping注解:注解和含义
查看>>
站立会议第四天
查看>>
如何快速掌握一门技术
查看>>
利用AMPScript获取Uber用户数据的访问权限
查看>>
vagrant 同时设置多个同步目录
查看>>