一、预加载图像
如果你的网页中需要使用大量初始不可见的(例如,悬停的)图像,那么可以预加载这些图像。
1 | $.preloadImages = function () { |
二、检查图像是否加载
有时为了继续脚本,你可能需要检查图像是否全部加载完毕。
1 | $('img').load(function () { |
你也可以使用 ID 或 CLASS 替换 <img>
标签来检查某个特定的图像是否被加载。
三、自动修复破坏的图像
逐个替换已经破坏的图像链接是非常痛苦的。不过,下面这段简单的代码可以帮助你。
1 | $('img').on('error', function () { |
四、悬停切换
当用户鼠标悬停在可点击的元素上时,可添加类到元素中,反之则移除类。
1 | $(selector).hover(function () { |
只需要添加必要的 CSS 即可。更简单的方法是使用 toggleClass()
方法。
1 | $(selector).hover(function () { |
五、淡入淡出/显示隐藏
1 | // fade |
六、鼠标滚轮
1 | $('#content').on("mousewheel DOMMouseScroll", function (event) { |
七、鼠标坐标
1、JavaScript实现
1 | X:<input id="xxx" type="text" /> Y:<input id="yyy" type="text" /> |
1 | function mousePosition(ev){ |
2、jQuery实现
1 | $('#ele').click(function(event){ |
八、禁止移动端浏览器页面滚动
1、HTML实现
1 | <body ontouchmove="event.preventDefault()" > |
2、JavaScript实现
1 | document.addEventListener('touchmove', function(event) { |
九、阻止默认行为
1 | // JavaScript |
十、阻止冒泡
1 | // JavaScript |
十一、检测浏览器是否支持svg
1 | function isSupportSVG() { |
十二、检测浏览器是否支持canvas
1 | function isSupportCanvas() { |
十三、检测是否是微信浏览器
1 | function isWeiXinClient() { |
十四、检测是否移动端及浏览器内核
1 | var browser = { |
十五、检测是否电脑端/移动端
1 | var browser={ |
十六、检测浏览器内核
1 | function getInternet(){ |
十七、强制移动端页面横屏显示
1 | $( window ).on( "orientationchange", function( event ) { |
十八、电脑端页面全屏显示
1 | function fullscreen(element) { |
十九、获得/失去焦点
1、JavaScript实现
1 | <input id="i_input" type="text" value='会员卡号/手机号'/> |
1 | // JavaScript |
2、jQuery实现
1 | <input type="text" class="oldpsw" id="showPwd" value="请输入您的注册密码"/> |
1 | // jQuery |
二十、获取上传文件大小
1 | <input type="file" id="filePath" onchange="getFileSize(this)"/> |
1 | // 兼容IE9低版本 |
二十一、限制上传文件类型
1、高版本浏览器
1 | <input type="file" name="filePath" accept=".jpg,.jpeg,.doc,.docxs,.pdf"> |
2、限制图片
1 | <input type="file" class="file" value="上传" accept="image/*"/> |
3、低版本浏览器
1 | <input type="file" id="filePath" onchange="limitTypes()"/> |
1 | /* 通过扩展名,检验文件格式。 |
二十二、正则表达式
1 | //验证邮箱 |
二十三、限制字符数
1 | <input id="txt" type="text"> |
1 | //字符串截取 |
二十四、验证码倒计时
1 | <input id="send" type="button" value="发送验证码"> |
1 | // JavaScript |
二十五、时间倒计时
1 | <p id="_lefttime"></p> |
1 | function countdown() { |
二十七、时间戳、毫秒格式化
1 | function formatDate(now) { |
二十八、当前日期
1 | var calculateDate = function(){ |
二十九、判断周六/周日
1 | <p id="text"></p> |
1 | function time(y,m){ |
三十、AJAX调用错误处理
当 Ajax 调用返回 404 或 500 错误时,就执行错误处理程序。如果没有定义处理程序,其他的 jQuery 代码或会就此罢工。定义一个全局的 Ajax 错误处理程序。
1 | $(document).ajaxError(function (e, xhr, settings, error) { |
三十一、链式插件调用
jQuery 允许“链式”插件的方法调用,以减轻反复查询 DOM 并创建多个 jQuery 对象的过程。
1 | $('elem').show(); |
通过使用链式,可以改善
1 | $('elem') |
还有一种方法是在(前缀$)变量中高速缓存元素
1 | var $elem = $('#elem'); |
链式和高速缓存的方法都是 jQuery 中可以让代码变得更短和更快的最佳做法。